聚合和组合

原创 2004年09月03日 18:18:00

聚合(Aggregation):

   这是一种松散的对象间的关系.举个例子:计算机和他的外围设备就是一例.

  用来表示拥有关系或者整体与部分的关系。

组合(Composition):

这是一种非常强的对象间的关系,举个例子,树和它的树叶之间的关系.

在一个合成里,部分与整体的生命周期都是一样的。一个合成的新对象完全拥有对其组成

部分的支配权。包括他们的创建和毁灭。

最后总结一下:

聚合:

  •  聚合有时能够不依赖部分而存在,有时又不能
  • 部分可以独立于聚合而存在
  • 如果有一部分遗失,聚合会给人一种不完全的感觉
  • 部分的所有权可以由几个聚合来共享,比如打印机

合成:

  • 部分某一时刻只能属于某一个组成
  • 组成唯一的负责处理它的所有部分--这就意味着负责他们的创建与销毁
  • 倘若对于部分的职责由其他对象来承担的话,组成也就可以放松这些职责。
  • 如果组成销毁的话,它必须销毁所有的部分,或者把负责他们的权利转移给其他对象。

Java中组合与聚合的区别

今日得闲,拿来一直放着的《Thinking in Java》来看,前面就说到组合跟聚合,之前看过现在也记了,上网查了一下,大家说的都有道理。李笑来老师说过,一个好的类比对于正确的理解和实践某个事物是非...
  • baidu_25555389
  • baidu_25555389
  • 2017年06月30日 17:43
  • 565

组合/聚合复用原则详解--七大面向对象设计原则(7)

组合/聚合复用原则来源:        在面向对象的设计中,如果直接继承基类,会破坏封装,因为继承将基类的实现细节暴露给子类;如果基类的实现发生改变,则子类的实现也不得不发生改变;从基类继承而来的实现...
  • fanyun_01
  • fanyun_01
  • 2016年07月19日 21:56
  • 2179

聚合VS组合的代码实现过程

构造函数,你写与不写,都在那里!
  • lfh15732626246
  • lfh15732626246
  • 2016年06月05日 10:30
  • 987

重新认识java(四) — 组合、聚合与继承的爱恨情仇

有人学了继承,认为他是面向对象特点之一,就在所有能用到继承的地方使用继承,而不考虑究竟该不该使用,无疑,这是错误的。那么,究竟该如何使用继承呢?...
  • qq_31655965
  • qq_31655965
  • 2017年01月21日 11:25
  • 4975

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

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

C++之类的组合(聚合)

在我们对现实中的某些事物抽象成类时,可能会形成很复杂的类,为了更简洁的进行软件开发,我们经常把其中相对比较独立的部分拿出来定义成一个个简单的类,这些比较简单的类又可以分出更简单的类,最后由这些简单的类...
  • sinat_20265495
  • sinat_20265495
  • 2016年06月23日 23:23
  • 1327

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

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

用C++代码描绘UML中的 关联 依赖 组合 聚合 泛化

UML的类图关系分为: 关联、聚合,组合、依赖、泛化(继承)。而其中关联又分为双向关联、单向关联、自身关联;下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里。 1、关联 ...
  • qq51931373
  • qq51931373
  • 2014年01月12日 01:26
  • 1747

依赖、关联、聚合和组合及其之间区别的简单理解

在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。 1. 依赖(Dependence)         依赖关...
  • zhou1519
  • zhou1519
  • 2014年03月28日 21:35
  • 1130

关联,聚合,组合的区别及C++实现

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gamecreating/archive/2010/03/22/5404589.aspx   关联,聚合,组...
  • luliyuan
  • luliyuan
  • 2015年09月21日 15:25
  • 1926
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:聚合和组合
举报原因:
原因补充:

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