UML之类图中的各种关系
在类与类之间,会有连线指明它们之间的关系。
类和类,类和接口,接口和接口之间可以建立以下几种关系:
一般化关系、关联关系、聚合关系、合成关系和依赖关系,这几种关系都是静态的。
1)一般化关系:表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。
一般化的关系是从子类指向父类,或从实现接口的类指向被实现的接口,与继承或实现的方向相反。
一般化关系在Java语言中可以直接翻译为关键字extends和implements。前者描述类与类之间、接口与接口之间的一般化关系,后者描述与接口之间的一般化关系。
2)关联关系:是类与类之间的连接,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以使单向的。双向的关联可以有两个箭头或者没有箭头。
单向的关联有一个箭头,表示关联的方向。单向的关联更为普遍,通常不鼓励双向的关联。
3)聚合关系:聚合关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类和引擎类、轮胎类、以及其他的零件类之间的关系便是
整个和个体的关系
4)合成关系:是关联关系的一种,是一种比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系是不能共享的。
代表整体的对象需要负责保持部分对象的存活,在一些情况下负责将代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责
此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生合成关系,由后者排他地负责生命周期。
5)依赖关系:也是类与类之间的连接,依赖总是单向的。依赖关系表示一个类依赖另一个类的定义。
摘自《Java设计与模式》一书。。。