UML类图
类之间的关系
Generalization and Realization(is A)
泛化和实现关系,表示继承或者实现接口。
classDiagram
Dog --|> Animal
Cat --|> Animal
箭头方向
箭头指向父类。
Composition(has a)
组合关系 是一种“强” 关联关系,带有一下特征:
- 是一种二元关系
- 表示整体与部分的关系
- 部分脱离整体存在没有意义(Only made for Composition)
classDiagram
Human *--LegOfHuman
Human *-- HandOfHuman
mermaid代码
classDiagram
Human *--LegOfHuman
Human *-- HandOfHuman
箭头方向
符号是指向整体(whole)的一端。
Aggregation (has a)
聚合关系,B中有A的实例,是一种弱关联关系,它与组合关系的区别在于“部分”脱离整体是可以存在的。
classDiagram
Student o-- Course
Student o-- Book
mermaid代码
classDiagram
Student o-- Course
Student o-- Book
符号是指向整体(whole)的一端。
Dependency(Use a)
这是一种弱依赖关系,表示一个类使用到了另外一个类,它的特点:
- 两者的关系不固定,是可以被替换的
- 二者是平等的关系
举例:司机在开车的时候依赖汽车,它们分离可以独立存在。
classDiagram
class Car{
+move()
}
class Driver{
+drive(car:Car)
}
Driver ..> Car : use
mermaid代码
classDiagram
class Car{
+move()
}
class Driver{
+drive(car:Car)
}
Driver ..> Car : use
箭头方向
被描述为supplier-client 关系,箭头指向提供者。
符号方向总结
- 整体与部分关系中的 组合、聚合 符号都是在整体的一段
- 依赖关系,箭头指向提供方
- 继承和实现,箭头指向父类
参考:
https://www.uml-diagrams.org/composition.html?context=class-diagrams