聚合(Aggregation)和组合(Composition)的区别
来源:互联网 发布:量化交易程序员 编辑:程序博客网 时间:2024/05/02 22:30
聚合(Aggregation)
一種鬆散的對象閒的關係
部分可獨立于聚合而存在
关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,如下图所示,用空的菱形表示聚合关系:
从实现的角度讲,聚合可以表示为:
class A {...} class B { A* a; .....}
从实现的角度讲,聚合可以表示为:
class A {...} class B { A* a; .....}
当B类销毁的时候,A的指针a并不会被销毁的,在内存中还有a的位置了。
組合(Composition)
一種非常強烈的對象之間的關係
組合一旦銷毀的話,必須銷毀所有部分或把負責他們的權利轉移給其他對象
而组合表示contains-a的关系,关联性强于聚合:组合类与被组合类有相同的生命周期,组合类要对被组合类负责,采用实心的菱形表示组合关系:
实现的形式是:
class A{...} class B{ A a; ...}
B类销毁了后,A也被同时销毁,在内存中就没有a的位置了。
转自:http://www.cnblogs.com/cugliang/archive/2007/11/04/949072.html
- 聚合(Aggregation)和组合(Composition)的区别
- 聚合(Aggregation)和组合(Composition)的区别
- 聚合(Aggregation)和组合(Composition)区别
- Composition(组合)与Aggregation(聚合)的区别
- Composition(组合)与Aggregation(聚合)的区别
- UML的关联(Association), 聚合(Aggregation), 组合(Composition)区别
- 组合与聚合的选用 (Composition & Aggregation)
- 在UML 中,聚合(aggregation)和组合(composition)有什么区别?
- 继承(inheritance),组合(composition),聚合(aggregation)
- UML中关联(Association)、聚合(Aggregation)和合成(Composition)之间的区别
- UML中关联(Association)、聚合(Aggregation)和合成(Composition)之间的区别
- UML中聚集(Aggregation)与组合(Composition)的区别
- UML中Association(关联), Aggregation(聚合), Composition(组合)和Dependency(依赖)辨析
- UML中Association(关联), Aggregation(聚合), Composition(组合)和Dependency(依赖)辨析
- 类图中的聚合关系(aggregation)和组合关系(composition)比较
- 组合/聚合复用原则(Composition/Aggregation Principle)
- 组合/聚合复用原则(Composition/Aggregation Principle)
- 面向对象编程中Association、Aggregation和Composition的区别
- 该怎么做
- 使用JUnit4进行单元测试(一)
- jQuery的“$”
- VMware7上安装RHEL5
- 一个宏
- 聚合(Aggregation)和组合(Composition)的区别
- MFC Class hierarchy chart
- 图像处理:基础(模板、卷积运算)
- RCP 中设置和Eclipse一样的流线型视图窗口
- typedef与函数指针
- Eclipse3.5 link 插件安装方式
- C#中实现拖放操作
- 网络安全之加密技术
- ARM汇编伪指令