类之间关系:依赖、泛化(继承)、实现、关联、聚合与组合
类与类、类与接口之间的关系表示:
纵向关系:继承、实现
横向关系:依赖、关联、聚合与组合,从强到弱依次为:组合、聚合、关联、依赖
1、依赖关系
依赖关系:指的是类与类之间的联接。
依赖关系表示一个类依赖于另一个类的定义。
一般而言,依赖关系在Java语言中体现为成员变量、局部变量、方法的形参、方法返回值,或者对静态方法的调用。
2、关联关系
关联关系:指的是类与类之间的联接,它使一个类知道另一个类的属性和方法(实例变量体现)。A类依赖于B对象,并且把B作为A的一个成员变量, 则A和B存在关联关系.
关联可以是双向的,也可以是单向的。
两个类之前是一个层次的,不存在部分跟整体之间的关系。
3、聚合关系(aggregtion)
聚合关系是关联关系的一种特例,他体现的是整体与部分,是一种“弱拥有”的关系,即has-a的关系。聚合是整体和个体之间的关系。
关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。
4、组合
组合关系是关联关系的一种特例,他体现的是一种contains-a(包含)的关系,这种关系比聚合更强,也称为强聚合。
整体和个体不能独立存在,一定是在一个模块中同时管理整体和个体,生命周期必须相同(级联)