UML的五种关系

http://blog.csdn.net/zfrong/article/details/3771842

http://www.51testing.com/html/93/n-234293.html

http://www.guan8.net/Java/109821.html

UML中有依赖(dependency),关联(association),聚合(aggregation),组合(composition)和泛化(generalization)。他们之间的依赖性由弱到强为:依赖—>关联—>聚合-->组合—>泛化

依赖(dependency

表现为函数中的参数(use a)。就是一个类使用到了另外一个类,而这种使用关系是具有偶然性、临时性,非常弱,但是另外一个类的变化会影响到这个类。是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。是一种典型的临时关系,代表了类之间一种短暂的交互。例如表现在代码层面如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。

UML的五种关系_第1张图片

关联(association)

表现为变量(has-a)。类与类之间的联接,表示类之间的一种持续一段时间的合作关系,但是二者生命线不被绑定。是一种强依赖关系,不存在依赖关系的偶然性,也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。它使一个类知道另一个类的属性和方法。例如如果A依赖于B,则B体现为A的全局变量。关联关系有双向关联和单向关联。双向关联:两个类都知道另一个类的公共属性和操作。单向关联:只有一个类知道另外一个类的公共属性和操作。大多数关联应该是单向的,单向关系更容易建立和维护。

UML的五种关系_第2张图片

聚合(aggregation

关联关系的一种,是强的关联关系。体现的是整体与部分,拥有的关系即owns关系。此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。聚合关系是整体和个体的关系。普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分。同时,是一种弱的拥有关系。体现的是A对象可以包含B对象,但B对象不是A对象的组成部分。具体表现为,如果AB聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建。

UML的五种关系_第3张图片

组合(composite

关联关系的一种,是比聚合关系强的关系(is part of),也称之为强聚合。这种关系是非共享的,也就是说在任何时间,部分只能包含在一个整体中,二者的生命线总是相连的。这里非共享的关系是指实例,就是说一个类的不同实例可以属于不同拥有者,但是一个特定的实例只能有一个拥有者。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。Composition(组合关系)是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一致。如果AB组成,表现为A包含有B的全局对象,并且B对象在A创建的时刻创建。

UML的五种关系_第4张图片

泛化(generalization

Generalization(泛化)表现为继承或实现关系(is a)。具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。继承值得是一个类继承另外一个类的功能,并可以增加它自己的功能。实现值得是一个类实现父类的接口,实现是类接口之间最常见的关系。

UML的五种关系_第5张图片

你可能感兴趣的:(UML)