uml:统一建模语言(Unified Modeling Language)
class diagram:类图
association:关联
aggregation:聚合、集合
composition:组合、组成、构成
上面是最容易混淆的三者关系。
association 关联
下面两种(聚合、组合)都是关联关系,是它的特例
aggregation 聚合(个体与集体)ps,也有人叫弱聚合
has-a关系,如大雁与雁群的关系,整体与部分的关系比较弱,少了一个个体,整体基本不受影响。
composition 组合(本体与构体)ps,也有人叫强聚合
contains-a关系,如大雁与翅膀的关系,翅膀造出来了才能造大雁,在构造上有先后关系。整体与部分的关系比很强,少了一个构体,本体就变样了。本体的生命周期决定构体的生命周期。ps,公司与部门的关系,问题和选项的关系。
ps,三者的耦合程度不同,代码实现也不同。项目前期分析设计时,需要正确把握类之间的关系。这很重要。
其它,,,
- 泛化(父类->子类):generalization
实线三角形
对象之间耦合度最大的一种关系 - 实现(接口->实现类):realization
虚线三角形
implementation ? - usage
虚线箭头+U - 成员变量:
self association
association
双向关联(实线两箭头)、单向关联(实线一箭头)、一般关联(实线无箭头)
aggregation
空心四角形[箭头]
composition
实心四角形[箭头] - dependency
虚线箭头
对象之间最弱的一种关系。
->class(ps,做方法参数) 或 package 或 subsystem - containment
十字圆圈连线[箭头]
->inner class(内部类) - anchor(锚)
虚线
-> note/annotation(注释) 或 constraint(约束) - multiplicity
如 0 1 0..1 * 1..*
cardinality(关联基数) ?
多重性关联关系/重数性关联关系 ? - +(public)
- -(private)
- #(protect)