[设计模式] UML图
类之间关系(由强到弱)
- realize(实现):三角+实线(指向类),继承类(SUV是一种汽车)
- generalization(泛化):三角+虚线(指向接口),实现接口(汽车是一种车)
- composition(组合):实菱形+实线(指向整体),强依赖(汽车没了,发动机就没了),构造函数
- aggregation(聚合):空菱形+实线(指向整体),非强依赖(班级没了,学生还在),成员变量
- association(关联):箭头+实线(指向被依赖者),静态,天然的联系(学生带着身份证),成员变量
- dependency(依赖):箭头+虚线(指向被依赖者),动态,运行时的联系(学生只在上学时用自行车),类方法的参数
总结
- 可分为三组,三角--菱形--箭头,关联由强到弱;每组中采用实/虚,实心/空心表示关联强弱
- 图形所在的一方为被依赖者
- 泛化、实现是is-a,聚合、组合是has-a
- 聚合、组合的区别在于生命周期不同,聚合是部分的生命周期可以超过整体(弱关联),组合是部分和整体同生死(强关联)
- 代码实现:聚合--部分是整体的成员变量;组合--部分在整体的构造函数中创建,实现同生死
- 每项分两个格,填写属性和方法,-表示私有,+表示公有
参考
设计模式
https://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html
代码中的聚合&组合