类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。
泛化(Generalization)
继承关系,子承父业是对象之间耦合最大的一种关系。
在类图中使用带三角箭头的实线表示,箭头从子类指向父类!
实现(Realization)
接口和实现的关系。在类图中用带三角箭头的虚线表示,箭头从实现类指向接口。
依赖(Dependency)
对象之间最弱的一种关系,是临时的关联。通常由局部变量,函数参数,返回值建立的对其他对象的调用关系。在类图中使用带箭头的虚线表示,箭头从实用类指向被依赖的类。
关联(Association)
- 一般关联
对象之间一种引用关系,比如客户和订单的关系。在类图中使用带箭头的实线表示,箭头从使用类指向被关联的类,可以是单向和双向。
- 聚合关联
has-a的关系,局部与整体的关系。比如公司和员工的关系,公司包含员工。公司可以倒闭,员工也可以换公司。是一种不稳定的包含关系,但较强于一般关联。在类图中使用空心另行表示,从局部指向整体。
- 组合关联
containts-a的关系,强关联的局部与整体的关系,组合类负责被组合类的生命周期。比如公司和部门,没有公司部门也不会单独存在。在类图中使用实心的菱形表示,从局部指向整体!