类与类之间的关系包括继承、实现、依赖、关联、聚合、组合。其中继承和实现比较简单,此处不再赘述。下面简单介绍一下我对依赖、关联、聚合、组合的理解。
1、依赖:依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。表现在代码层面,为类B作为参数被类A在某个method方法中使用。
2、关联:关联体现的是两个类之间语义级别的一种强依赖关系,表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。
3、聚合:聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。比如计算机与CPU、雁群与大雁。
4、组合:组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,比如大雁与翅膀之间的关系。
此处介绍的比较简单,只是我个人的理解,下面的链接讲的比较详细,大家可做参考。