在画UML类图时需要搞清楚类与类之间的关系,下面这篇博客讲的挺清楚的。
https://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html
总结一下就是:
纵向关系:
继承Inheritance:子类属于父类的一种
实现Realization:子类实现父类接口
横向关系:关联程度从强到弱
组合Composition:包含关系,不可分离,大类析构时小类同时也会析构
聚合Aggregation:包含关系,可分离,大类析构时小类还可以继续用
关联Association:引用的关系,平等。
依赖Dependency:引用的关系,不平等。
还有两种关系不明:
Link(Solid)
Link(Dashed)
classDiagram
classA --|> classB : Inheritance
classC --* classD : Composition
classE --o classF : Aggregation
classG --> classH : Association
classI -- classJ : Link(Solid)
classK ..> classL : Dependency
classM ..|> classN : Realization
classO .. classP : Link(Dashed)