关联,聚合,组合
来源:互联网 发布:java获取apk版本号 编辑:程序博客网 时间:2024/06/04 19:09
关联和聚合的区别主要在语义上,关联的两个对象之间一般是平等的,例如你是我的朋友,聚合则一般不是平等的,例如一个公司包含了很多员工,其实现上是差不多的。聚合和组合的区别则在语义和实现上都有差别,组合的两个对象之间其生命期有很大的关联,被组合的对象是在组合对象创建的同时或者创建之后创建,在组合对象销毁之前销毁。一般来说被组合对象不能脱离组合对象独立存在,而且也只能属于一个组合对象,例如一个文档的版本,必须依赖于文档的存在,也只能属于一个文档。聚合则不一样,被聚合的对象可以属于多个聚合对象,例如一个员工可能可以属于多个公司。
我想举个通俗的例子。
你和你的心脏之间是composition关系(心脏只属于自己)
你和你买的书之间是aggregation关系(书可能是别人的)
你和你的朋友之间是association关系
聚合与组合的区别:聚合∶分散的聚集到一起 组合∶几个独立部分组成的整体 由上可见,聚合就像将不同的水果放到一个玻璃果盘里,玻璃果盘摔坏,并不影响水果。
1.继承:
B继承A的条件:
逻辑上B是A的"一种(a kind of)",且A的所有属性和功能对B都有意义,则容许继承.
比如CSaleman(销售人员)类继承CCompanyStaff(员工)类,
轿车可以继承交通工具的所有特征.因为轿车是一种交通工具.
2.聚合.
A聚合B的条件:
逻辑上B是A的"一部分(a part of)",A需要使用B的功能,而A和B又不属于同一类的范畴,
比如CCompanyStaff(员工)类聚合CEducation(学历)类,Line(线段)类聚合Point(点)类.
轿车类内嵌发动机的对象,两者不能继承,不属于一类,只能聚合,让轿车使用发动机的功能.
- 继承/聚合/组合/关联
- 聚合,关联,组合
- 关联、聚合、组合
- 依赖,关联,聚合,组合
- 依赖,关联,组合, 聚合
- 关联--依赖、组合--聚合
- 关联,聚合,组合
- 关联, 聚合, 组合关系
- 依赖,关联,聚合,组合
- 依赖-关联-聚合-组合
- UML 关联, 聚合, 组合
- 关联,聚合,组合
- c++组合 聚合 关联
- 依赖 关联 聚合 组合
- UML-关联/聚合/组合
- c++组合 聚合 关联
- 关联之组合聚合
- 依赖、关联、聚合、组合
- lsof
- Leveldb源码分析--19
- 编译时如果发现无法打开或无法找到 .exe 文件 编译相对路径的设置
- (Android jni) error: base operand of '->' has non-pointer type '_JNIEnv'
- extjs LoadMask 失效 无效 遮罩 问题
- 关联,聚合,组合
- Silverlight 在C#代码中设置Background的值
- DSS Architecture
- java HashMap 按值排序
- GridCtrl 的使用
- HADOOP简介
- ^[0-9]+(\.[0-9]{1,4})?$"); 正则表达式,该表达式的意思:检测字符串是否匹配由0-9出现1次或多次
- Delphi 图标,应用程序背景图片添加
- POJ 动态规划题目列表