UML图
UML的基础知识,属于整合他人的小文章了,记录下自己回头看。如有纰漏,请多指教。
具体类、抽象、接口和包
具体类
第一层是类名字。第二层是类的成员变量;第三层是类的方法。
- “+”表示
public; - “-”表示
private; - “#”表示
protected; - 不带符号表示
default。
抽象类
抽象类的类名以及抽象方法的名字都用斜体字表示。
接口
带一个<<interface>>
包
各种关系
实现关系
类实现接口,类与接口之间的关系。虚线+空心箭头
泛化关系
对象之间的继承关系,**子类指向父类。**实线+空心箭头
关联关系
一个对象知道另一个对象的属性和方法,即一个对象包含另一个对象的引用。包含对象指向被包含对象。实线+箭头,双向关联就不用加箭头。
通过放置多重性(multipicity)表达式在关联线的末端来表示。多重性表达式可以是一个数字、一段范围或者是它们的组合。多重性允许的表达式示例如下:
- 数字:精确的数量
*或者0..*:表示0到多个0..1:表示0或者1个,在Java中经常用一个空引用来实现1..*:表示1到多个
关联关系又分为依赖关联、聚合关联和组合关联三种类型。
依赖关系
use 的关系,对象A用到了对象B,比如类A的方法的形参是类B,这就是use。虚线+箭头
聚合关系
has的关系,体现整体和部分的拥有关系。聚合关系是可分离的,即去掉某些部分,整体依然成立。空心菱形+箭头,整体指向部分
组合关系
contains的关系,体现整体和部分的包含关系。组合关系不可分离,即这些部分组成了整体,少一个的话,整体不成立。实心菱形+箭头。
参考: