提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本文内容摘自漏墨小子的文章:https://blog.csdn.net/loumoxiaozi/article/details/81036408
正文
类与类的四种种关系:
- 泛化(Generalization)
- 实现(Realization)
- 依赖(Dependence)
- 关联(Association)
其中关联又分为关联、聚合(Aggregation)、组合(Composition)。
表示关系的强弱:依赖 < 关联 < 聚合 < 组合 < 泛化(继承)
泛化关系
表示类与类之间的继承关系,类和类,接口和接口都可以是继承关系,父类称为基类或者超类,子类称为派生类。子类继承父类实现父类的所有功能,并拥有父类没有的功能。
实现关系
就是java中的一个类和接口之间的关系,接口中一般是没有成员变量。所有操作都是抽象的,只有声明没有具体的实现。
依赖关系
依赖关系是类与类之间最弱的关系,A元素变化会影响B元素,反之不成立。说简单点就是一个类使用了另一个类,这种关系具有临时性特征,一个类的改变由于另一类而受影响。
解释:
也就是 当类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。
关联关系
表示一个类和另一类有联系,它使一个类知道另一个类的属性和方法,被关联的元素间通常可以被独立的考虑
- 单向关联表现为:类A当中使用了类B,其中类B是作为类A的成员变量。
- 双向关联表现为:类A当中使用了类B作为成员变量;同时类B中也使用了类A作为成员变量。
聚合关系
聚合关系是整体和部分的关系,是一种强的关系,但是部分可以脱离整体而存在。是关联关系的一种。
解释:
聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系,他们之间是“整体-个体”的相互关系。
组合关系
组合关系是聚合关系的一种变种,便是了更强的组合关系,它要求整体的对象代表部分对象的生命周期。
解释:
相比于聚合,组合是一种耦合度更强的关联关系。存在组合关系的类表示“整体-部分”的关联关系,“整体”负责“部分”的生命周期,他们之间是共生共死的;并且“部分”单独存在时没有任何意义。