一,总体来说
- generalization(inheritance):继承。是 "is-a"关系
- composition:组合。是"part-a"关系
- aggregation:聚合。是"has-a"关系
- 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