聚合(Aggregation)
一種鬆散的對象閒的關係
部分可獨立于聚合而存在
 关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,如下图所示,用空的菱形表示聚合关系:
从实现的角度讲,聚合可以表示为:
class A {...} class B { A* a; .....}  
当B类销毁的时候,A的指针a并不会被销毁的,在内存中还有a的位置了。
 
組合(Composition)
一種非常強烈的對象之間的關係
組合一旦銷毀的話,必須銷毀所有部分或把負責他們的權利轉移給其他對象

而组合表示contains-a的关系,关联性强于聚合:组合类与被组合类有相同的生命周期,组合类要对被组合类负责,采用实心的菱形表示组合关系:
实现的形式是:
class A{...} class B{ A a; ...}
B类销毁了后,A也被同时销毁,在内存中就没有a的位置了。

相关文章:

  • 2022-12-23
  • 2021-07-18
  • 2021-09-27
  • 2021-11-18
  • 2021-05-28
  • 2021-05-21
猜你喜欢
  • 2021-06-17
  • 2021-10-29
  • 2021-12-17
  • 2022-12-23
  • 2021-12-13
相关资源
相似解决方案