面向对象的思想中存在如下几种关系,一般为了方便交流都使用UML的类图来展现类之间的关系。所以了解类图中符号的含义对看懂类图,尤其是用类图展示的设计模式很有帮助。下面依次介绍这几种关系
类继承关系
继承关系使用空心三角形+实线来表示,UML图示:
实现接口
实现接口用空心三角形+虚线来表示:
关联关系(Association)
当一个类"知道"另一个类时,可以用关联关系表示。关联关系用实线箭头来表示。
聚合关系(Aggregation)
聚合表示一种弱的"拥有"关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。如每只大雁属于一个雁群,一个雁群可以有多只大雁。所以它们之间满足聚合关系。聚合关系用空心菱形+实线箭头来表示,UML图如下:
组合/合成关系(Composition)
组合关系是一种强的"拥有"关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。如鸟和其翅膀就是组合关系,因为它们是部分和整体的关系,并且有着相同的生命周期。合成关系用实心菱形+实线箭头来表示。合成关系连线两端各有一个数字表明这一端的类可以有几个实例。如一只鸟有一对翅膀,则这两个数字分别是1和2。如果是一对多则末端被标记为n。上面介绍的关联关系和聚合关系也可以有这个基数。
依赖关系(Dependency)
对于动物依赖氧气和水这种关系使用依赖关系来表示,依赖关系在UML图中使用虚线来表示。