在UML中提起四大关系我们应该都是不陌生的,我们先来说明一下这四大关系。
用图表的形式来介绍一个新的事物,是最直观的了。
一、关联(Association)
关联关系是一种“拥有”关系,它使一种类“知道”另一种类的属性和方法。举例:企鹅和气候两个类,企鹅需要‘知道’气候的变化和‘了解’气候规律,才去决定什么时候迁徙。像这样的关系,我们称为关联。
组合(Composition):关联的一种强的“拥有”关系。组合关系体现的是严格的部分和整体的关系,部分一旦脱离整体将不存在。举例:企鹅和翅膀。企鹅有两只翅膀,当企鹅消失的时候,这对翅膀也将会消失。
聚合(Aggregation):关联的一种弱的“拥有”关系。聚合关系体现的整体和部分的关系,且部分离开整体可单独存在。举例:企鹅群和企鹅。企鹅群是一个类,由许多企鹅组成。但是企鹅离开企鹅群可单独存在。
二、依赖(Dependency)
依赖关系体现的一种“使用”关系,即一个类的实现需要使用另一个类的方法或者属性。举例:写字。我们写字需要笔,我们和笔,他们两者之间就是一个“使用”关系,也就是依赖,但是这不是一个强依赖的关系。
三、泛化(Generalization)
泛化关系体现的是一种继承关系。子类泛化出父类,而父类特化出的子类拥有父类所有的属性和方法。举例:动物和企鹅。动物是一个父类,其属性是一双眼睛,方法是呼吸,那么企鹅继承与动物这个类,就会拥有一双眼睛和呼吸的行为。
四、实现(Realization)
实现关系体现的是类与接口的关系,类是接口所有特征和行为的实现。举例:定义一个行为是“呼吸”的接口,企鹅类实现这个“呼吸”的动作。
以上内容是他人博客中的内容,我觉得很生动,就使用一下,如有侵权,请联系我。
我们上边对于四大关系有了一定的了解,我们来说说它们之间的关系,他们之间有强弱关系,可以看到泛化与实现两者关系是差不多的,聚合就比组合差点了,其次就是关联,最后就是依赖了,大体上可以分为六种:依赖(Dependency),关联(Association)泛化(Generalization),实现(Realization),组合(Composition),聚合(Aggregation)。
他们之间的强弱关系是没有异议的:依赖<关联<聚合<组合<实现=泛化。
我们知道他们之间的强弱关系了,我们就可以来编一编他们之间的线为什么要这么来画了,首先是泛化,它是由一条实现与三角形箭头的方法的,我们都知道三角形是图形中最稳固的图形,所以,它用来表示最强的泛化关系,而组合是由实心菱形+实线,菱形相比三角形就不够稳固了,还有聚合是用空心菱形+实线,空心是不是没有实心菱形,这样,到了最后的依赖关系,他就是虚线+箭头了,更加的弱了,所以线是这么画滴。