association & composition & aggregation & generalization

一,总体来说

  1. generalization(inheritance):继承。是 "is-a"关系
  2. composition:组合。是"part-a"关系
  3. aggregation:聚合。是"has-a"关系
  4. association:关联。对象间的任何关系都被叫做关联,组合 & 聚合都是关联的特殊情况。

二,细节说明

1,关联的几种常见情况:

  1)类A有一个B类的成员变量:指针或者引用实例。
  2)B类对象实例作为类A的成员函数的参数。

  3) 类A的成员函数中创建了类B的局部实例。

  代码:

2,聚合:典型的整体与局部的关系。避免循环聚合。

   例子代码:

 

3,组合:组合非常地像聚合,但是不同之处是组合中,局部的生命周期由整体控制,整体负责局部的创建和销毁,当整体销毁时局部也不再存在。

   例子代码:

 

参考自:

http://stackoverflow.com/questions/885937/difference-between-association-aggregation-and-composition

http://www.c-sharpcorner.com/uploadfile/pcurnow/compagg07272007062838am/compagg.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值