UML类图怎么画
一、注释(comment)
注释就是对类图的补充说明,可以附加在任何元素上,用右上角有折角的矩形来表示,其内放置说明文字,通过虚线连接被注释的元素。

二、类(Class)
在面向对象(OO) 编程中,类是对现实世界中一组具有相同特征的物体的抽象。
在 在UML 类图中,类使用包含 类名 、 属性(field) 和 和 方法(method) 且带有分割线的矩形来表示:

类的属性的完整表示方式:
可见性名称 :类型 [ = 缺省值]
类的方法的完整表示方式:
可见性名称(参数列表) [ :返回类型]

三、接口(Interface)
接口是一种特殊的类,具有类的结构但 不可被实例化 ,只可以被实现(继承)。
在 在UML 中, 接口有两种表示方式 :
普通接口表示法(飞翔);

棒棒糖表示法(讲人话), 使用一个带有名称的小圆圈来表示, 在旁边写上相应接口名称,没有具体接口方法。

四、UML类图中的关系
1、类图 类图—依赖关系 依赖关系( (Dependency) )
只要是在类中用到了对方 , 那么他们之间就存在依赖关系。如果没有对方,编绎通过不了 。
public class PersonDao{}
public class IDCard{}
public class Person{}
public class Department{}
public class PersonServiceBean {
private PersonDao personDao;
public IDCard getIDCard(Integer personid) { }
public void save(Person person){}
public void modify(){Department department = new Department();
}
}

2、类图— 关联关系(Association) )
关联关系实际上就是类与类之间的联系 , 是依赖关系的特例 。实线箭头
关联具有 导航性 :即双向关系或单向关系
关系具有 多重性。
(1)单向一对一 关系
// 一个人一个身份证号 一对一单向的 一对一
public class Person { private IDCard card;}
public class IDCard{}

(2)双向 一对一 关系
// 一个人 对应 一 个身份证号 一对一
//一 一 个身份证号也对应一个人
public class Person { private IDCard card;}
public class IDCard{ private Person person; }

3、类图— 继承关系(Inheritance) )
继承关系也称泛化关系,是依赖关系的特例。 A 类继承了B类也相当于A 类用到了B 类。 空心三角形+ 实线
public abstract class DaoSupport{
public void save(Object entity){ }
public void delete(Object id){ }
}
public class PersonServiceBean extends DaoSupport{ }
PersonServiceBean 继承了 了DaoSupport

4、类图— 实现关系(Implementation) )
实 现关系实际上就是A类实现B接口 ,是依赖关系的特例 ,依赖关系更强。 空心三角形+ 虚线
public interface PersonService {
public void delete(Interger id);
}
public class PersonServiceBean implements PersonService {
public void delete(Interger id){}
}
PersonServiceBean 实现了 PersonService 这个接口- - 实现关系实现 关系实际上就是A类实现B接口

5、类图— 聚合关系(Aggregation) )
聚合关系表示的是整体和部分的关系, 整体与部分可以分开。 聚合关系是关联关系的特例,所以他具有关联的导航性与多重性 。使用带空心菱形的实线,菱形指向整体来表示。
如 :一台电脑由键盘(keyboard) 、显示器(monitor),鼠标等组成。考虑计算机与鼠标、显示器能不能分开?
如果认为:关系是可以分开的,则是聚合关系 ;
关系是不可以分开的 ,则是组合关系。
鼠标是可以分离的:可以插上也可以不插上,电脑没有鼠标还是一个电脑;显示器也是可以分离的;鼠标类、显示器类与电脑类构成聚合关系。
public class Computer {
private Mouse mouse; // 鼠标可以和computer 分离
private Monitor monitor; // 显示器可以和Computer 分离
public void setMouse(Mouse mouse) {this.mouse = mouse; }
public void setMonitor (Monitor monitor) {
this.monitor = monitor;}
}

认为不 可以 分开, 是组合关系,
代码 :
public class Computer {
private Mouse mouse = new Mouse();
// 鼠标 不 可以和 和computer 分离—— 组合关系
private Moniter monitor = new Monitor();
// 显示器 不 可以和 和Computer 分离—— 组合关系
public void setMouse(Mouse mouse) {this .mouse=mouse;}
public void setMonitor(Monitor monitor) {
this .monitor = monitor;}
}

6、类图— 组合关系(Composition) )
组合关系:也是整体与部分的关系,但是整体与部分 不可以分开 。 实心菱形+实线
public class Person{
private IDCard card; // 聚合
private Head head = new Head(); // 组合
}
public class IDCard{}
public class Head{}

设计模式(二)——UML类图怎么画相关推荐

  1. 23种常用设计模式的UML类图

    23种常用设计模式的UML类图 本文UML类图参考<Head First 设计模式>(源码)与<设计模式:可复用面向对象软件的基础>(源码)两书中介绍的设计模式与UML图. 整 ...

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

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

  3. 设计模式:UML类图

    UML类图 一.UML基本介绍 UML--Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路 ...

  4. 从零开始单排学设计模式「UML类图」定级赛

    阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...

  5. 从零开始单排学设计模式「UML类图」定级赛 1

    阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...

  6. 设计模式之UML类图

    在学设计模式的过程中经常碰到各式各样的UML类图.那些眼花缭乱的符号有什么含义呢? 类图含义 类图中的关系 从网上找来一张图作为实例 依赖关系:比如动物依赖氧气和水,这里如学生要依赖自行车.用虚线箭头 ...

  7. 各种设计模式的UML类图

    一.单一职责原则 就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱他的设 ...

  8. MVC设计模式和UML类图

    文章目录 一.UML 类图: 二.MVC 设计模式 一.UML 类图: 14中UML图:https://blog.csdn.net/yoyo328/article/details/78009237 二 ...

  9. 【设计模式】UML类图关系与符号

    文章目录 一.UML简介 1.1 UML类图常用关系 1.2 UML模型结构 1.3 UML类的表示 二.类之间的关系 2.1 泛化(Generalization) 2.2 实现(Realizatio ...

最新文章

  1. oracle linux 6.5 安装 virtualbox
  2. centos 打开pdo_mysql_centos中添加php扩展pdo_mysql步骤
  3. 95-846-820-源码-网络-Flink 网络传输优化技术
  4. 1092 最好吃的月饼 (20分)
  5. 字符串startswith_Python字符串startswith()
  6. Ctfmon.exe是什么进程?
  7. 计算机网络发展分几个阶段各有什么特点,计算机网络的发展可以划分为几个阶段?每个阶段都有什么特点?...
  8. 机器学习(聚类七)——层次聚类的优化算法
  9. VCC、 VDD、VSS、VEE 电压符号的解释
  10. 根据GPS定位得到的经纬度调用百度地图API在地图上标注
  11. 那些移动端web踩过的坑2
  12. 华师计算机应用基础知识,华师计算机应用基础课后习题答案.doc
  13. 关于 618的前世今生,我帮东哥告诉你
  14. windows11文件夹修改图标/颜色/样式教程
  15. springboot集成ShardingSphere-JDBC(5.0.0-beta)
  16. 3-6岁经典绘本分级大推荐,给孩子先收藏起来
  17. 详记Android打开相机拍照流程
  18. 2008.12.24李明老师互联网时代的就业与创业讲座总结
  19. 爱奇艺 视频编码信息参考
  20. 蓝桥杯 算法训练(2)

热门文章

  1. 知云文献翻译打不开_一个可以快速翻译浏览英文文献的工具,拿走不谢!
  2. Rokid从音箱产品到行业赋能:四年谋局,一鸣惊人
  3. python科学记数法转化格式_将科学记数法转换为F
  4. 大话设计模式三之单一职责原则、开放-封闭原则、依赖倒置原则、里氏代换原则
  5. matlab符号值,matlab 符号积分和数值积分
  6. 画出漂亮的神经网络图,神经网络可视化工具集锦
  7. 第二篇 简洁但功能强大的EditPlus——我的最爱
  8. cs231n课程资料Python Numpy Tutorial的Python3版本
  9. 庖丁解牛Transformer原理
  10. HUAWEI nova 青春版发布会现场探秘 堪称圈内大惊喜