类与类之间由弱到强关系是:    没关系 < 依赖 < 关联 < 聚合 < 组合。

1、依赖(dependency)

  可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用。用带虚线的箭头。

  

2、关联(association)

  他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

 依赖和关联区别:我用锤子修了一下桌子,我和锤子之间就是一种依赖,我和我的同事就是一种关联。依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是“uses”了那个类),就可以把这种关系看成是依赖,依赖也可说是一种偶然的关系,而不是必然的关系。关联是类之间的一种关系,例如老师教学生,老公和老婆这种关系是非常明显的。依赖是比较陌生,关联是我们已经认识熟悉了。

最新文章

  1. 模板函数(template function)出现编译链接错误(link error)之解析
  2. UE4实现风格化渲染(一):UserNormalTranslator工具的使用
  3. ORACLE创建表之前判断表是否存在与SQL Server 对比使用
  4. Python3学习(1)-基础篇
  5. The constness of a method should makes sense from outside the object
  6. strus2中获取表单数据 两种方式 属性驱动 和模型驱动
  7. .NET中 MEF应用于IOC
  8. Ftp连接错误
  9. 算法的稳定性(Stability of Sorting Algorithms)
  10. Oracle Dataguard 介绍
  11. JVM的Server与Client运行模式区别与切换
  12. javascript的数组之reverse()
  13. [HTML]将错误alert出来[转]
  14. spring整合curator实现分布式锁
  15. C++ leetcode Binary Tree Maximum Path Sum
  16. Linux配置Supervisor 配置遇到的坑
  17. Docker 架构(四)
  18. 探索RequestBody报com.alibaba.fastjson.JSONObject cannot be cast to xxx
  19. HDU 6063 17多校3 RXD and math(暴力打表题)
  20. 网络流——最大流Dinic算法

热门文章

  1. &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,initial-scale=1.0&quot;&gt;
  2. 2015,我的投资理财策略(股权众筹+P2P网贷+活期理财)
  3. Storm新特性之Flux
  4. Oracle分页查询的一个存储过程:
  5. maven 配置Project Facets时further configuration available不出来问题
  6. stm32单片机时钟中断的配置
  7. hcharts实现堆叠柱形图
  8. 一个例子讲解wav头文件 stm32声音程序 录音和播放 wav
  9. Unreal Enginer4特性介绍-牛B闪闪的UE4
  10. [TypeStyle] Compose CSS classes using TypeStyle