聚合(aggregation)和相识(acquaintance)

聚合(aggregation)和相识(acquaintance)

@(Design Patterns)[C++, 设计模式]

在《模式设计》一书中,聚合与相识的定义分别如下,
聚合 意味着一个对象拥有另一个对象或对另一个对象负责。一般我们称一个对象包含另一个对象或者是另一个对象的一部分。
相识 意味着一个对象仅仅知道另一个对象。有时相识也被称为“关联”或“引用”关系。相识的对象可能请求彼此的操作,但是它们不为对方负责。
CSDN讨论社区的一个例子能够很好的说明两者的区别。

聚合

聚合对象包容了被聚合对象,或者说,聚合对象控制被聚合对象的生命期,在C++中,如果被聚合对象在聚合对象中是以成员变量的形式存在的,那么二者同生同 死。如果被聚合对象是以其指针方式被聚合的,它有可能是延迟构造并可能是提前析构的,即被聚合对象诞生于聚合对象之后,死于聚合对象之前。

class   Aggregatee  //被聚合对象
{
    
}; 

class   Aggregator  //聚合对象
{
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值