[设计模式] UML图

类之间关系(由强到弱)

  • realize(实现):三角+实线(指向类),继承类(SUV是一种汽车)
  • generalization(泛化):三角+虚线(指向接口),实现接口(汽车是一种车)
  • composition(组合):实菱形+实线(指向整体),强依赖(汽车没了,发动机就没了),构造函数
  • aggregation(聚合):空菱形+实线(指向整体),非强依赖(班级没了,学生还在),成员变量
  • association(关联):箭头+实线(指向被依赖者),静态,天然的联系(学生带着身份证),成员变量
  • dependency(依赖):箭头+虚线(指向被依赖者),动态,运行时的联系(学生只在上学时用自行车),类方法的参数

 [设计模式] UML图

总结 

  • 可分为三组,三角--菱形--箭头,关联由强到弱;每组中采用实/虚,实心/空心表示关联强弱
  • 图形所在的一方为被依赖者
  • 泛化、实现是is-a,聚合、组合是has-a
  • 聚合、组合的区别在于生命周期不同,聚合是部分的生命周期可以超过整体(弱关联),组合是部分和整体同生死(强关联)
  • 代码实现:聚合--部分是整体的成员变量;组合--部分在整体的构造函数中创建,实现同生死
  • 每项分两个格,填写属性和方法,-表示私有,+表示公有

参考

设计模式

https://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html

代码中的聚合&组合

https://www.2cto.com/kf/201410/347867.html