关联、组合、聚合、依赖关系比较

原创 2008年01月12日 00:10:00

类之间的关系

1. 种类: Generalization(泛化)Dependency(依赖关系)Association(关联关系)Aggregation(聚合关系)Composition(合成关系)

2.  其中Aggregation(聚合关系)Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。

3.  Generalization(泛化)表现为继承或实现关系(is a)。具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。

4.  Association关联关系表现为变量(has a )。类与类之间的联接,它使一个类知道另一个类的属性和方法。例如如果A依赖于B,则B体现为A的全局变量。关联关系有双向关联和单向关联。双向关联:两个类都知道另一个类的公共属性和操作。单向关联:只有一个类知道另外一个类的公共属性和操作。大多数关联应该是单向的,单向关系更容易建立和维护,有助于寻找可服用的类。

   

5.  Aggregation(聚合关系) 是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分。同时,是一种弱的“拥有”关系。体现的是A对象可以包含B对象,但B对象不是A对象的组成部分。具体表现为,如果AB聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建。

 

 

6.  Composition(组合关系)是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。Composition(组合关系)是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一致。如果AB组成,表现为A包含有B的全局对象,并且B对象在A创建的时刻创建。

7.  Dependency(依赖关系)表现为函数中的参数(use a)。是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。

 

8.          Helios    2008-1-11

相关文章推荐

浅谈UML中的聚合与组合

大家都知道UML的类图中一般包含五种关系即  关联 聚合 组合 泛化 依赖  有些人可能会感觉组合跟聚合有点难区分 说难其实是相对其他几种关系而言 实际上想分清这两种关系一点也不难  聚合跟组合其实都...

UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要...
  • hguisu
  • hguisu
  • 2012年06月07日 18:34
  • 57027

UML图中聚合、组合、关联、依赖、泛化的强弱关系

一、泛化 1、说明      泛化是一种继承关系,如果一个类A的所有属性和操作能被另一个类B所继承,则类B不仅可以包含自己独有的属性,而且可以包含类A的属性和操作。继承是类与类或者类与接口之间最常...

C++里的组合与聚合关系

组合关系(Composition):部分和整体之间具有相同的生命周期,当整体消亡后,部分也将消亡。就像大雁的翅膀和大雁是组合关系。代码实现时,部分类在整体类的构造函数中被构造,在析构函数中被析构。 ...

谈一谈自己对依赖、关联、聚合和组合之间区别的理解

在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但...
  • zhengzhb
  • zhengzhb
  • 2012年02月07日 15:42
  • 23980

继承、实现、依赖、关联、聚合、组合的联系与区别

继承、实现、依赖、关联、聚合、组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力...

组合,关联,聚合的区别

类间关系在类图中,除了需要描述单独的类的名称、属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义。在UML类图中,关系用类框之间的连线...

继承、实现、依赖、关联、聚合、组合的联系与区别

继承、实现、依赖、关联、聚合、组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力...

谈谈类之间的关联关系与依赖关系

原文:http://www.cnblogs.com/iyangyuan/archive/2013/06/16/3138463.html   对于很多刚刚接触UML的童鞋,可能会对类之...

Java语言中的关联与依赖关系

在开始本文的学习前,先总结一下已经学习过的内容。在前面9篇文章中,主要是介绍Java类中的基本语法,是按照先概括,再具体的循序渐进的方式进行的。先介绍了Java类的主要组成部分:数据成员,方法成员,构...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关联、组合、聚合、依赖关系比较
举报原因:
原因补充:

(最多只允许输入30个字)