内聚和耦合
2014-11-13 10:42
211 查看
软件设计的关键品质是内聚和耦合。这不是什么新奇的“面向对象”概念;自从20世纪70年代出现结构化设计开始,开发者对这一概念已经谈论了许多年。我们的目标是通过设计使系统的组件具备下列品质:
1. 高内聚
内聚是一个测量指标,说明相关的功能如何聚集在一起,模块内的各部分作为一个整体工作得如何。内聚性是将模块粘成一个整体的胶水。
弱内聚的模块是不良分解的信号。每个模块都必须具有清晰定义的角色,而不只是一堆不相关的功能。
2. 低耦合
耦合是模块之间独立性的测量指标——它们之间进出“电线”的数量。在最简单的设计中,模块几乎没有什么耦合,所以彼此间的依赖关系较少。显然,模块不能够完全解耦,否则它们将根本不能够一起工作!
模块之间的联系有多种方式,有的是直接的,有的是间接的。模块可以调用其它模块中的函数,或被其它模块所调用。它可能使用其它模块提供的Web服务或设施,可能使用其它模块的数据类型,或提供某些数据让其它模块使用(可能是变量或文件)。
好的软件设计会限制通信的线路,只提供哪些绝对需要的。这种通信线路是确定架构的一部分因素。
1. 高内聚
内聚是一个测量指标,说明相关的功能如何聚集在一起,模块内的各部分作为一个整体工作得如何。内聚性是将模块粘成一个整体的胶水。
弱内聚的模块是不良分解的信号。每个模块都必须具有清晰定义的角色,而不只是一堆不相关的功能。
2. 低耦合
耦合是模块之间独立性的测量指标——它们之间进出“电线”的数量。在最简单的设计中,模块几乎没有什么耦合,所以彼此间的依赖关系较少。显然,模块不能够完全解耦,否则它们将根本不能够一起工作!
模块之间的联系有多种方式,有的是直接的,有的是间接的。模块可以调用其它模块中的函数,或被其它模块所调用。它可能使用其它模块提供的Web服务或设施,可能使用其它模块的数据类型,或提供某些数据让其它模块使用(可能是变量或文件)。
好的软件设计会限制通信的线路,只提供哪些绝对需要的。这种通信线路是确定架构的一部分因素。
相关文章推荐
- 什么是高内聚和低耦合?
- [技术讨论]OO原则中松耦合与高内聚的分析
- 高内聚,低耦合的概念剖析
- 程序设计之核心“高内聚,低耦合”
- 高内聚、低耦合
- 耦合和内聚
- 高内聚,低耦合
- 关于 iOS 开发中,代码如何做到高内聚,低耦合,MVC 三层分离的小感悟
- 耦合与内聚
- 什么是高内聚、低耦合? 转自博客园 robnetcn
- 关于JAVA 封装性 以及高内聚,低耦合的理解
- 软件设计之高内聚低耦合
- 高内聚,低耦合与SOLID原则
- 什么是高内聚、低耦合?
- 开发中,理解高内聚、低耦合
- 高内聚,低耦合
- 面向对象原则:高内聚、低耦合。多聚合、少继承
- 面向对象三大特性五大原则 + 低耦合高内聚
- 【软件工程】模块分解之内聚和耦合
- [转]如何在struts+spring+hibernate的框架下构建低耦合高内聚的软件