文章目录
- 概念
- UML类图 :
- 泛化关系(generalization)
- 实现关系(realization)
- 聚合关系(aggregation)
- 组合关系(composition)
- 关联关系(association)
- 依赖关系(dependency)
概念
- 1.类(Class):使用三层矩形框表示 .
第一层显示类的名称,如果是抽象类,则就用斜体显示 .
第二层是字段和属性 .
第三层是类的方法 .
注意 : 前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected .
- 2.接口:使用两层矩形框表示,与类图的区别主要是顶端有<< >>显示 .
第一行是接口名称 .
第二行是接口方法 . - 3.泛化关系(generalization):用空心三角形+实线来表示 . 通常在程序里面泛化表现为继承于非抽象类 .
- 4.实现关系(realization):用空心三角形+虚线来表示 . 通常程序里面实现关系表现为继承抽象类 .
- 5.关联关系(association):用实线箭头来表示 .
- 6.聚合关系(aggregation):用空心的菱形+实线箭头来表示 .
- 7.组合关系(composition):用实心的菱形+实线箭头来表示 .
- 8.依赖关系(dependency) :用虚线箭头来表示 .
UML类图 :
泛化关系(generalization)
泛化关系用一条带空心箭头的直接表示 .
如图为例, Linux 和 电脑就是泛化关系,通常在程序里面泛化表现为继承于非抽象类 .
实现关系(realization)
实现关系用一条带空心箭头的虚线表示 .
如图为例,电脑和可计算处理器就是实现关系,通常程序里面实现关系表现为继承抽象类 .
聚合关系(aggregation)
聚合关系用一条带空心菱形箭头的直线表示,如图码农和部门就是聚合关系 .与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在 .
如图为例 ,部门撤销了,码农换一个工作还是码农 .
组合关系(composition)
组合关系用一条带实心菱形箭头直线表示,与聚合关系一样,组合关系同样表示整体由部分构成的关系,不同之处在于整体和部分是强依赖关系,如果整体不存在了,部分也不复存在 .
如图为例,如果公司倒闭了,那么何来部门呢?
关联关系(association)
关联关系通常用一条直线表示,当然如果需要标明方向可以添加箭头 .它是描述不同的类对象之间的关系,通常不会随着状态的变化而变化,可以理解为被关联者属于关联者的一部分 .
如图为例,电话就是码农的一部分,不会因为他上班与否而变化所属关系 .通常情况在程序里面以类变量的方式表现 .
依赖关系(dependency)
依赖关系是用一条带箭头的虚线表示,它通常描述一个对象在运行期间会用到另一个对象的关系 .
如图为例 , 码农只有在工作的时候才会用到 Linux 电脑,所以这种依赖关系是依赖于运行状态的 .通常情况下是在程序里面通过构造函数、形参等体现 .