六大关系:关联association、依赖dependency、聚合aggregation、组合compositon、泛化generalization、实现realization.

盗图:

关联:关联关系使一个类知道另外一个类的属性和方法;通常含有“知道”,“了解”的含义。通过成员变量来实现的;

依赖:是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系; 体现为局部变量、方法/函数的参数或者是对静态方法的调用;

聚合:关联关系的一种。聚合关系是整体和个体/部分之间的关系;关联关系的两个类处于同一个层次上,而聚合关系的两个类处于不同的层次上,一个是整体,一个是个体/部分;在聚合关系中,代表个体/部分的对象有可能会被多个代表整体的对象所共享;

A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分,则 A 和 B 之间就是一种聚合关系。策略模式中,就是一种聚合关系。

组合: 它也是关联关系的一种,但它是比聚合关系更强的关系.组合关系要求聚合关系中代表整体的对象要负责代表个体/部分的对象的整个生命周期;组合关系不能共享;在组合关系中,如果代表整体的对象被销毁或破坏,那么代表个体/部分的对象也一定会被销毁或破坏,而聚在合关系中,代表个体/部分的对象则有可能被多个代表整体的对象所共享,而不一定会随着某个代表整体的对象被销毁或破坏而被销毁或破坏;组合关系是通过成员变量来实现的;

综上,如果是局部变量,那么就是依赖;如果是成员变量,看其生命周期。如果整体被销毁,部分也一定被销毁,那么就是组合。如果只是用成员变量的一些功能,就是关联。如果代表部分的对象被多个共享,就是聚合。

最新文章

  1. HTML5 网络拓扑图性能优化
  2. vs2015 编译时错误列表中没有错误,dll却没有生成出来
  3. exception 'DOMException' with message 'Invalid Character Error' Php + Mongodb
  4. KO Demo
  5. 混合应用中的javascript实践
  6. 创建XML文档结构
  7. Struts 有哪些经常使用标签库
  8. 高放的c++学习笔记之重载运算与类型转换
  9. HTML中select标签单选多选详解
  10. SharePoint解决方案由VS2010升级到VS2013部署页面报错
  11. 自定义html标签
  12. api接口json串换行
  13. 安装Appium
  14. 跨域的另一种解决方案CORS(CrossOrigin Resource Sharing)跨域资源共享
  15. 数据结构与算法 —— 链表linked list(01)
  16. shell基础及变量
  17. ORM杂记
  18. PHP中json数组与对象的问题
  19. 【转】完全用Linux工作
  20. 深入理解 Neutron -- OpenStack 网络实现(3):VXLAN 模式

热门文章

  1. 面向对象——property
  2. 快速排序-php代码实现
  3. POJ 1315 Don't Get Rooked
  4. Thinkphp5 PDO操作mysql预处理中文字段出错问题
  5. hdu6097[二分+解析几何] 2017多校6
  6. 用SVGDeveloper制作svg地图
  7. 模拟select框
  8. 最新版浏览器报错net::ERR_INSECURE_RESPONSE原因
  9. eclipse中maven项目交付svn忽略配置文件
  10. 马士兵hadoop第五课:java开发Map/Reduce(转)