`

高内聚低耦合的介绍

 
阅读更多

起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。

 

    耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
    耦合性分类(低――高): 无直接耦合;数据耦合;标记耦合;控制耦合;公共耦合;内容耦合;
1 无直接耦合:
2 数据耦合: 指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递;
3 标记耦合: 指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址;
4 控制耦合: 指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能;
5 公共耦合: 指通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程序随耦合模块的个数增加而增加。
6 内容耦合: 这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。
 
    内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
    内聚性匪类(低――高): 偶然内聚;逻辑内聚;时间内聚;通信内聚;顺序内聚;功能内聚;
1 偶然内聚: 指一个模块内的各处理元素之间没有任何联系。
2 逻辑内聚: 指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
3 时间内聚: 把需要同时执行的动作组合在一起形成的模块为时间内聚模块。
4 通信内聚: 指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。
5 顺序内聚: 指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入。
6 功能内聚: 这是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。与其他模块的耦合是最弱的。
 
    耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
 
    有个例子很容易明白:一个程序有50个函数,这个程序执行得非常好;然而一旦你修改其中一个函数,其他49个函数都需要做修改,这就是高耦合的后果。
一旦你理解了它,你编写概要设计的时候设计类或者模块自然会考虑到“高内聚,低耦合”。

 

可能也可以这样理解:

高内聚相对的是方法的独立性,减少外部(全局参数)的影响。低耦合相对的是方法的依赖性低,可用搭积木的方式构建程序。内聚类似积木,耦合类似盖房子,而高内聚低耦合的方式是比较效率并个性化构建房屋的方式。

 

 

http://www.cnblogs.com/robnetcn/archive/2012/04/15/2449008.html

分享到:
评论

相关推荐

    高内聚低耦合

    ### 高内聚低耦合的概念与重要性 在软件工程和系统设计领域,“高内聚低耦合”是一个至关重要的原则。这一原则强调的是如何有效地组织代码或模块,以提高系统的可维护性和扩展性。 #### 什么是高内聚? 高内聚指...

    android高内聚低耦合任务事件总线框架

    "android高内聚低耦合任务事件总线框架"是指利用事件总线(Event Bus)模式来实现应用组件间的通信,同时遵循高内聚和低耦合的原则。本文将深入探讨这个主题。 **高内聚**指的是一个类或模块中的功能紧密相关,只...

    spring 底耦合高内聚

    spring 底耦合高内聚

    论文:高内聚低耦合软件架构的构建_程春蕊

    在设计方法上,论文可能会介绍各种设计策略,如面向对象设计、函数式编程或者模块化设计等,这些方法都可以帮助实现高内聚和低耦合。例如,面向对象设计中的接口隔离原则、依赖倒置原则以及单一职责原则都是为了降低...

    软件开发中的问题:什么是高内聚、低耦合?

    ### 软件开发中的问题:什么是高内聚、低耦合? 在软件工程领域,模块化设计是一种常见的策略,旨在提高代码的可维护性和可重用性。在这个过程中,“高内聚、低耦合”成为了衡量模块设计优劣的重要标准之一。下面将...

    图解高内聚与低耦合.docx

    ### 图解高内聚与低耦合 #### 模块的概念 模块是在软件工程中用于组织和管理代码的一种方式,其基本思想是从逻辑上将系统分解成更小、更易于管理的部分。通过这种方式,可以将复杂的系统问题拆解成一系列相对简单的...

    高内聚低耦合理解

    高内聚低耦合理解,系统的文字帮助你更快速的理解

    大牛思想(高内聚低耦合).pdf

    大牛思想(高内聚低耦合).pdf

    (优化2)android高内聚低耦合任务事件总线框架

    在Android开发中,高内聚低耦合是一个重要的设计原则,它能提升代码的质量和可维护性。"(优化2)android高内聚低耦合任务事件总线框架"这个标题暗示了我们要讨论的是如何利用事件总线来优化任务处理,以实现更好的...

    一个学生管理系统的demo 高内聚 低耦合

    《学生管理系统Demo:高内聚与低耦合的实践》 在软件工程中,高内聚和低耦合是衡量系统设计质量的重要原则。本文将深入探讨如何在C#环境中,通过一个学生管理系统的示例(demo)来实现这两个概念,并分析其中的关键...

    高内聚低耦合原则_动力节点Java学院整理

    高内聚低耦合原则 高内聚低耦合原则是软件设计和编码质量评价的一个重要标准。耦合度是衡量模块(类)之间关联、感知和依赖的程度,也是衡量代码独立性的一个指标。降低耦合度可以减少模块间的影响,防止对某一模块...

    强内聚松耦合与测试的关系

    由于模块的独立性和高内聚性,每次代码提交后,都可以快速地进行构建、测试和部署,而不会对整个系统造成太大影响。这有利于团队实现敏捷开发,加快产品迭代速度,同时保持软件质量。 #### 增强系统稳定性和可靠性 ...

    耦合内聚.doc

    在软件设计中,追求高内聚低耦合是优化系统结构的重要原则。高内聚模块使得代码更易于理解和维护,而低耦合则使模块之间相互独立,减少变更带来的影响。因此,在设计和重构过程中,应努力提升模块的内聚度,降低模块...

    高内聚低耦合法则实例解析

    高内聚低耦合法则实例代码解析主要介绍了高内聚低耦合法则实例代码解析,具有一定借鉴价值,需要的朋友可以参考下。 定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越来越密切,耦合度...

    毕业设计,课程设计,大作业-基于python的图书管理系统,与常规的管理系统不同,本项目采用MVC分层架构,高内聚低耦合

    本项目的图书管理系统,具有一个基本的图书管理系统都有的功能,但是与普通管理系统相比,该系统基于MVC架构分层构建,扩展性强,高内聚低耦合, 数据持久化上采用cushy-storage进行文件存储,大大减少文件操作的...

    专业技能指导作业-高耦合低内聚.docx

    "软件工程高耦合低内聚知识点总结" 软件质量概念是指软件系统或系统中的软件部分的质量,既满足用户需求,也包括功能需求和性能需求的程度。软件质量应该从功能、易用性、外观、性能、可靠性、稳定性、安全性等方面...

    如何在struts+spring+hibernate的框架下构建低耦合高内聚的软件

    这个框架组合常被称为SSH(Struts-Spring-Hibernate)架构,用于构建高度模块化、低耦合、高内聚的Web应用程序。 Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,主要用于处理用户请求和...

    高内聚,低偶合,OSWorkflow,Hibernate 持久化层的游离状态

    在软件设计领域,"高内聚、低偶合"是一条重要的原则,它关乎着代码的质量和可维护性。高内聚意味着一个类或模块的功能集中且单一,尽量减少对外部的依赖,使得类的职责明确,提高了代码的稳定性和可读性。低偶合则是...

Global site tag (gtag.js) - Google Analytics