什么是高耦合低内聚?

如题所述

高耦合低内聚:块间联系高,块内联系低。

其中内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。

而耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。

扩展资料:

程序开发中的低耦合高内聚

模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。 

形象的说,就是要将代码写的和电脑一样,主类就是电脑的主机箱,当程序需要实现什么功能的时候只需要加其他的类引入接口,就像电脑上的usb接口。

一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。

模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。

在程序开发中,尽量做到低耦合高内聚,这样程序的维护成本以及可读性也会大大增强。

参考资料来源:百度百科-高内聚低耦合

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-26
低耦合高内聚是软件设计的一个基本原则,说的是在程序的各各模块中,尽量让每个模块独立,相关的处理尽量在单个模块中完成,就是俗话说的:该干嘛干吗去! 优点:能提降低各模块的之间的联系,减少“牵一发而动全身”的几率,提高开发效率,降低升级维护成本,也便于进行单元测试,提高软件质量。本回答被提问者采纳
第2个回答  2014-04-10
内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
用代码理解就是一个类尽量只形容一类事物,如果发现你写的2个类有共同的属性和方法就尽量提出来做成父类,方法就是尽量做到单一,不要一个方法就把一个功能写完了。高内聚就是在类中把方法和属性紧密的联系在一起 比如:写一个功能时尽量多分成好几个方法 在用一个方法把这些方法综合起来,对外就提供这一个方法就好了,
第3个回答  2020-11-26

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