uml类之间的关系

泛化(Generalization)

继承关系,子类继承父类

代码体现:extend

实现(Interface Realization)

类与接口的关系

代码体现:implements

关联(Association)

拥有,引用的关系,一个类知道和使用另一个类的属性和方法,被关联的类可能被多个类使用

代码体现:成员变量,例如通过setXXX接口,构造时传入参数,调用其他对象的getXXX

聚合(Aggregation)

一种关联关系,强调两个类之间的整体和局部关系,局部可以脱离整体单独存在,has-a的关系,可以各自有自己的生命周期,与关联的区别在于:关联关系的两个类是同等级别的,聚合关系中有整体与局部的区分

代码体现:成员变量

组合(Composition)

一种关联关系,强调两个类之间的整体和局部关系,局部不能脱离整体单独存在,不能与其他整体共享,整体对象负责或控制局部对象的生命周期,contains-a的关系

代码体现:成员变量

依赖(Dependency)

使用关系,一个类的实现需要另一个类的协助,依赖者和被依赖者之间没有直接的对象引用

代码体现:如局部变量,方法的参数,静态方法的调用,可以用依赖表示包与包的关系

各种关系的强弱顺序:

泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

聚合和组合是一种关联关系

参考:https://www.cnblogs.com/samchen2009/p/3315999.html

http://www.uml.org.cn/oobject/201609062.asp

http://www.uml.org.cn/oobject/201211231.asp