简而言之Composition(组合)关系是一个类不可以脱离另一个而存在,Aggregation(聚合)关系是两个类可以单独存在。
Composition(组合)
例如,翅膀不可以脱离鸟存在,翅膀是鸟的一个器官。
上图的uml代码如下,可以参考PlantUML使用方法。
@startuml
class bird {
+bird()
+void fly()
+void jump()
}
class wing {
-float length
-String color
+void shake()
}
wing --* bird
@enduml
Aggregation(聚合)
键盘和鼠标等可以脱离电脑存在。
上图的uml代码如下
@startuml
class computer {
}
class keyboard {
}
class mouse {
}
keyboard --o computer
mouse --o computer
@enduml