泛化(Generalization)
继承关系,子类继承父类
代码体现:extend
实现(Interface Realization)
类与接口的关系
代码体现:implements
关联(Association)
拥有,引用的关系,一个类知道和使用另一个类的属性和方法,被关联的类可能被多个类使用
代码体现:成员变量,例如通过setXXX接口,构造时传入参数,调用其他对象的getXXX
聚合(Aggregation)
一种关联关系,强调两个类之间的整体和局部关系,局部可以脱离整体单独存在,has-a的关系,可以各自有自己的生命周期,与关联的区别在于:关联关系的两个类是同等级别的,聚合关系中有整体与局部的区分
代码体现:成员变量
组合(Composition)
一种关联关系,强调两个类之间的整体和局部关系,局部不能脱离整体单独存在,不能与其他整体共享,整体对象负责或控制局部对象的生命周期,contains-a的关系
代码体现:成员变量
依赖(Dependency)
使用关系,一个类的实现需要另一个类的协助,依赖者和被依赖者之间没有直接的对象引用
代码体现:如局部变量,方法的参数,静态方法的调用,可以用依赖表示包与包的关系
各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
聚合和组合是一种关联关系
参考:https://www.cnblogs.com/samchen2009/p/3315999.html