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

原创 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类图中,关系用类框之间的连线...
  • baobeiSimple
  • baobeiSimple
  • 2007-06-12 10:59:00
  • 8373

认识UML类关系——依赖、关联、聚合、组合、泛化

在学习面向对象设计时,类关系涉及依赖、关联、聚合、组合和泛化这五种关系,耦合性依次递增。关于耦合度,可以简单地理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强...
  • K346K346
  • K346K346
  • 2017-03-02 22:41:32
  • 1469

认识UML中类之间的依赖、关联、聚合、组合、泛化的关系

什么是类? 将某类东西归纳在一起,可以成为一个类。 类有很多种提炼角度,需要根据系统地目标、业务的场景,选取合适的角度对事物进行归纳。 什么是类图? 类图可能是UML中使用的最...
  • zang141588761
  • zang141588761
  • 2016-04-25 15:59:07
  • 9509

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

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

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

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

泛化、实现、依赖和关联的区别

泛化、实现、依赖和关联的区别 传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系: a、实现 表示类对接口的实现。 UML图中实现使用一条带有空心三角箭头的虚线指向接...
  • huwei2003
  • huwei2003
  • 2016-05-16 10:32:04
  • 3292

依赖关系详解

 在《道法自然——面向对象实践指南》一书中,我们采用了一个对立统一的辩证关系来说明“模板方法”模式—— “正向依赖 vs. 依赖倒置”(参见:《道法自然》第15章[王咏武, 王咏刚 2004])。这种...
  • iPub
  • iPub
  • 2006-04-06 13:30:00
  • 5371

依赖关系和关联关系的区别

依赖关系、关联关系
  • zshtiger2414
  • zshtiger2414
  • 2011-05-12 10:25:00
  • 1222

面向对象之关系依赖

以下的举例对于 理解区分对象不同的关系很有好处,现摘录如下,便于查阅摘自《Java面向对象编程》一书,作者:孙卫琴 来源:www.javathinker.org在建立对象模型时,很容易把依赖、关联和聚...
  • zhangningbo168
  • zhangningbo168
  • 2007-11-27 20:44:00
  • 1959

关联关系和依赖关系

1、  关联关系 类A关联类B的意思是,如果实例化一个A类的对象,同时,会有一个B类的对象被实例化。简言之,B作为A的属性存在。如下: [java] view plai...
  • u014661698
  • u014661698
  • 2016-11-04 01:00:23
  • 1145
收藏助手
不良信息举报
您举报文章:关联、组合、聚合、依赖关系比较
举报原因:
原因补充:

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