高内聚,低耦合在软件工程里有,主要是说模快之间和模块内部之间的关系紧密程度
高内聚就是提高模快内部的关联程度,低耦合当然就是降低模快之间的关联程度
耦合性比较高的话,模块代码不易分离,是不好的编程模式
内聚是越高越好,内聚个人认为是只是实现一个功能,不是很多的功能
内聚按强度从低到高有以下几种类型: 构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。
模块完成多个需要按一定的步骤一次完成的功能。(过程相关---控制耦合)。例如:在用程序流程图设计模块时,若将程序流程图中的一部分划出各自组成模块,便形成过程内聚。 模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。
选中一艘有科学家的科研船,然后右键点击虫洞,探索虫洞。
虫洞比较复杂,需要入口及出口都要有装置才能移动。还有,虫洞有一定的传送范围,所以在敌国边界盖虫洞装置,这样就可涵盖到别国内。
模块的内聚性有:偶然内聚性、逻辑内聚性、时间内聚性、程序内聚性、联系内聚性、依序内聚性、功能内聚性
1、偶然内聚性:是指模块中的机能只是刚好放在一起,模块中各机能之间唯一的关系是其位置在同一个模块中。
2、逻辑内聚性:是只要机能在逻辑上分为同一类,不论各机能的本质是否有很大差异,就将这些机能放在同一模块中(例如将所有的鼠标和键盘都放在输入处理副程序中)。模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
3、时间内聚性:是指将相近时间点运行的程序,放在同一个模块中(例如在捕捉到一个异常后调用一函数,在函数中关闭已打开的文件、产生错误日志、并告知用户)。
4、程序内聚性:是指依一组会按照固定顺序运行的程序放在同一个模块中(例如一个函数检查文件的权限,之后打开文件)。
5、联系内聚性:是指模块中的机能因为处理相同的数据或者指各处理使用相同的输入数据或者产生相同的输出数据,所以放在同一个模块中(例如一个模块中的许多机能都访问同一个记录)。
6、依序内聚性:是指模块中的各机能彼此的输入及输出数据相关,一模块的输出数据是另一个模块的输入,类似工厂的生产线(例如一个模块先读取文件中的数据,之后再处理数据)。
7、功能内聚性:是指模块中的各机能是因为它们都对模块中单一明确定义的任务有贡献(例如XML字符串的词法分析)。
扩展资料
在计算机科学中,内聚性是指机能相关的程序组合成一模块的程度。应用在面向对象程序设计中,若服务特定类型的方法在许多方面都很类似,则此类型即有高内聚性。在一个高内聚性的系统中,代码可读性及复用的可能性都会提高,程序虽然复杂,但可被管理。
以下的情形会降低程序的内聚性:
1、许多机能封装在一类型内,可以借由方法供外界使用,但机能彼此类似之处不多。
2、在方法中进行许多不同的机能,使用的是相关性低或不相关的数据。
参考资料来源:百度百科——内聚性
内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。内聚的概念是Constantine、Yourdon、Stevens等人提出的。按他们的观点,把内聚按紧密程度从低到高排列次序为偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、信息内聚、功能内聚。但是紧密程度的增长是非线性的。偶然内聚和逻辑内聚的模块联系松散,后面几种内聚相差不多,功能内聚一个功能、独立性强、内部结构紧密,是最理想的内聚。
内聚按强度从低到高有以下几种类型:
偶然内聚
如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。
逻辑内聚
几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。
时间内聚
如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。
通信内聚
如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
顺序内聚
如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。
过程内聚
构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。
模块完成多个需要按一定的步骤一次完成的功能。(过程相关---控制耦合)。例如:在用程序流程图设计模块时,若将程序流程图中的一部分划出各自组成模块,便形成过程内聚。
信息内聚
模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该模块执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。
功能内聚
模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。
以上就是关于如何理解"高内聚,低耦合"的软件结构设计原则全部的内容,包括:如何理解"高内聚,低耦合"的软件结构设计原则、内聚的内聚强度类型、群星内聚虫洞怎么找等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!