在计算机科学中,内聚性是指机能相关的程序组合成一模块的程度。应用在面向对象程序设计中,若服务特定类型的方法在许多方面都很类似,则此类型即有高内聚性。那么模块的内聚性有哪几种呢?
模块的内聚性有哪几种1、模块的内聚性有:偶然内聚性、逻辑内聚性、时间内聚性、程序内聚性、联系内聚性、依序内聚性、功能内聚性。
2、偶然内聚性:是指模块中的机能只是刚好放在一起,模块中各机能之间唯一的关系是其位置在同一个模块中。
3、逻辑内聚性:是只要机能在逻辑上分为同一类,不论各机能的本质是否有很大差异,就将这些机能放在同一模块中(例如将所有的鼠标和键盘都放在输入处理副程序中)。模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
4、时间内聚性:是指将相近时间点运行的程序,放在同一个模块中(例如在捕捉到一个异常后调用一函数,在函数中关闭已打开的文件、产生错误日志、并告知用户)。
5、程序内聚性:是指依一组会按照固定顺序运行的程序放在同一个模块中(例如一个函数检查文件的权限,之后打开文件)。
6、联系内聚性:是指模块中的机能因为处理相同的数据或者指各处理使用相同的输入数据或者产生相同的输出数据,所以放在同一个模块中(例如一个模块中的许多机能都访问同一个记录)。
7、依序内聚性:是指模块中的各机能彼此的输入及输出数据相关,一模块的输出数据是另一个模块的输入,类似工厂的生产线(例如一个模块先读取文件中的数据,之后再处理数据)。
8、功能内聚性:是指模块中的各机能是因为它们都对模块中单一明确定义的任务有贡献(例如XML字符串的词法分析)。
以下的情形会降低程序的内聚性:许多机能封装在一类型内,可以借由方法供外界使用,但机能彼此类似之处不多。;在方法中进行许多不同的机能,使用的是相关性低或不相关的数据。