一、UML类图
https://www.cnblogs.com/jiqing9006/p/5915023.html
https://blog.csdn.net/sinat_21107433/article/details/84580218
类图中,为什么要区分依赖、关联、聚合、组合这四种关系?
1. 依赖
依赖是一种弱的关系,表示一个类的方法的实现需要用到另一个类,但二者之间并没有明显的关系。类A是类B的局部变量、方法的参数,A和B之间的关系是偶然性的具有临时性。
2.聚合
聚合表现的是一种拥有的关系,部分离开整体可以单独存在(比如计算机和键盘鼠标的关系,没有计算机但鼠标键盘可以单独存在),一般表现为类B是类A的成员变量。
3.组合(复合)
组合表现的是一种拥有的关系,和聚合不同的是部分离开整体后不可以单独存在(比如国和家的关系,没有国自然没有家,有国才有家),一般表现为类B是类A的成员变量
4.关联
关联分为单向关联,双向关联以及自关联。
关联也是一种拥有的关系,类A和类B之间的关系是长期性的,双方的关系一般是平等的,比如老师拥有自己的学生,学生拥有自己的老师(双向关联),老师和学生的关系是平等的,而聚合和组合不是平等的,比如汽车拥有轮胎(聚合),国拥有家(组合)。