Java开发设计——UML类图

摘要:本文主要介绍了UML类图的相关知识。

简介

在UML中,类使用包含类名、属性和操作且带有分隔线的长方形来表示,类图分为三层。

第一层是类的名称,如果是抽象类或接口,就用斜体表示,其中接口名称的上部会用<<interface>>修饰。

第二层是类的成员变量,通常是字段和属性。表示方式为: 可见性 名称:类型 [ = 缺省值 ] 。

第三层是类的成员方法。表示方式为: 可见性 名称(参数列表) [ : 返回类型] 。

类的成员变量和成员方法的修饰符分为+、#、-,分别表示public、protected、private。

类之间的关系

类之间的关系有实现(Realize),泛化(Generalize),关联(Associate),聚合(Aggregate),组合(Compose),依赖(Dependency)。

其中,聚合(Aggregate),组合(Compose)属于关联(Associate),是特殊的关联(Associate)关系。

关系强度(耦合度)由高到低为:泛化=实现>组合>聚合>关联>依赖。

实现(Realize)

关系:用来表示类与接口、抽象类与接口之间的关系。

箭头:用空心三角形+虚线表示,箭头指向接口。

泛化(Generalize)

关系:泛化是一种继承关系,用来表示类与类、类与抽象类、抽象类与抽象类、接口与接口之间的关系。

箭头:用空心三角形+实线表示,箭头指向父类或父接口。

关联(Associate)

关系:关联可以是双向的,也可以是单向的;关联关系可以进一步划分为聚合及组合关系。

箭头:用实线箭头表示,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

聚合(Aggregate)

关系:聚合用来表示整体与部分的关系,是一种弱的关联关系,体现为A可以包含B,但B不一定是A的一部分。

箭头:用空心的菱形+实线箭头表示,菱形指向整体。

组合(Compose)

关系:组合用来表示整体与部分的关系,是一种强的关联关系,体现了严格的整体和部分的关系,整体和部分的生命周期一样。

箭头:用实心的菱形+实线箭头表示,菱形指向整体。

依赖(Dependency)

关系:依赖用来表示两者之间的依从关系。

箭线:用虚线箭头表示,箭头指向被依赖的对象。

完整的关系图

Java开发设计——UML类图的更多相关文章

  1. 图解Java设计模式之UML类图

    图解Java设计模式之UML类图 3.1 UML基本介绍 UML图 UML类图 3.1 UML基本介绍 1)UML – Unified modeling language UML(统一建模语言),是一 ...

  2. 用MyEclipse将java文件转换成UML类图

    用MyEclipse将java文件转换成UML类图 参考: 用MyEclipse将java文件转换成UML类图 - 君临天下的博客 - CSDN博客  http://blog.csdn.net/dan ...

  3. 《GO Home Trash!》UML类图,ER图以及数据库设计

    <Go Home Trash!>UML类图 ER图以及数据库中数据表 分析: 这款软件经过我们前期的讨论以及需求分析,确定了用户,客服以及管理员三个实体.在设计UML类图时,对各个实体之间 ...

  4. UML类图学习总结

    1.首先来认识下类图?以及类图的作用 类图(Class diagram)由许多(静态)说明性的模型元素(例如类.包和它们之间的关系,这些元素和它们的内容互相连接)组成.类图可以组织在(并且属于)包中, ...

  5. 从 Java 代码逆向工程生成 UML 类图和序列图

    from:http://blog.itpub.net/14780914/viewspace-588975/ 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Sof ...

  6. webpack环境搭建开发环境,JavaScript面向对象的详解,UML类图的使用

    PS:因为所有的设计模式都是基于面向对象来完成的,所以在讲解设计模式之前先来过一下面向对象都有哪些知识点 搭建开发环境 初始化npm环境 下载安装nodejs安装即可,nodejs自带npm管理包,然 ...

  7. 设计模式学习(二):面向对象设计原则与UML类图

    一.UML类图和面向对象设计原则简介 在学习设计模式之前,需要找我一些预备知识,主要包括UML类图和面向对象设计原则. UML类图可用于描述每一个设计模式的结构以及对模式实例进行说明,而模式结构又是设 ...

  8. 使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实

    2.使用工厂方法模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...

  9. 1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程

    1.使用简单工厂模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...

随机推荐

  1. C#如何将DataTable中的列名复制到另一个DataTable

    C#如何将DataTable中的列名复制到另一个DataTable? 仅复制列名,不复制列下的数据: var newDt = new DataTable(); newDt = oldDataTable ...

  2. 【JavaWeb】实现二级联动菜单

    实现效果 频道信息 package demo; public class Channel { private String code; //频道编码 private String name; //频道 ...

  3. Hive SQL编译过程(转)

    转自:https://www.cnblogs.com/zhzhang/p/5691997.html Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hive ...

  4. 将网站发布到阿里云的Linux服务器上(简述)

    这里以idea的springboot项目为例(打成jar包) 这里去阿里云购买服务器的过程就不说了,自行百度 还有这篇只是简述,因为把一个项目部署到服务器要做的事情还是不少的,然后没学过Linux的建 ...

  5. 5-1可视化库Seabon-整体布局风格设置

    In [1]: import seaborn as sns import numpy as np import matplotlib as mpl import matplotlib.pyplot a ...

  6. Webshell篇

    常用方法简介: 一.0day拿webshell 参考工具:织梦漏洞利用小工具 二.通过注入漏洞拿Webshell 前提条件:具有足够权限,对写入木马的文件夹要有写入权限,知道网站绝对路径. 对于mss ...

  7. 使用Azure进行自动化机器学习

    什么是自动化机器学习? 自动化的机器学习,也称为 AutoML,让数据科研人员. 分析人员和开发人员,同时维护模型质量构建具有高缩放性. 效率和工作效率的机器学习模型. 自动化机器学习生成的机器学习模 ...

  8. web-never give up

    打开题目连接 ?id=1 ,疑是注入点 但是输入其他数字无果 打开源码,发现注释有网页链接 打开连接123.206.87.240:8006/test/1p.html 发现回到了bugku的论坛首页,应 ...

  9. 利用java程序构造mysql测试数据

    package com.baidu.mysql;import java.sql.*; public class MysqlJdbc { /** * @param args */ public stat ...

  10. 用背包问题思路解决 322. Coin Change(完全背包)

    首先需要明白 0-1 背包问题中的放置表格,见 “玩转算法面试 从真题到思维全面提升算法思维” 9-5 节,本题思路类似表格纵向为:只考虑第 [0 …,… index] 种硬币(物品)表格横向为:需要 ...