`

什么是高内聚、低耦合?

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

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

相关推荐

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

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

    高内聚低耦合

    #### 什么是高内聚? 高内聚指的是一个模块内部的功能紧密相关,并且彼此之间高度协作。换句话说,一个具有高内聚度的模块或组件能够实现单一职责原则,即它只负责执行一项具体任务或一组紧密相关的任务。这样做的...

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

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

    spring 底耦合高内聚

    spring 底耦合高内聚

    图解高内聚与低耦合.docx

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

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

    《高内聚低耦合软件架构的构建》这篇论文深入探讨了软件工程中的核心设计理念——高内聚与低耦合,这是构建高质量、可维护、易于扩展的软件系统的重要原则。高内聚指的是模块内部元素之间的紧密关联,而低耦合则意味...

    高内聚低耦合理解

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

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

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

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

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

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

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

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

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

    耦合内聚.doc

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

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

    高内聚低耦合法则实例解析中,主要讲解了什么是高内聚低耦合法则的定义、产生的问题、解决方案,以及如何编程低耦合。高内聚低耦合法则的定义是:一个对象应该对其他对象保持最少的了解。高内聚低耦合法则的主要问题...

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

    ### 强内聚松耦合的概念与重要性 在软件工程和系统设计领域,强内聚松耦合是两个至关重要的概念,它们不仅对代码质量和系统可维护性有着深远的影响,而且与软件测试密切相关。 #### 强内聚(Strong Cohesion) 强...

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

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

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

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

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

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

    耦合内聚.zip

    在实际开发中,我们追求低耦合高内聚的设计原则,以提高软件的可重用性、可读性和可维护性。为了实现这一目标,可以采取以下策略: 1. 减少全局变量的使用,尽量通过接口和方法进行通信。 2. 设计模块时,确保每个...

Global site tag (gtag.js) - Google Analytics