在计算机科学中,内聚性是指机能相关的程序组合成一模块的程度。应用在面向对象程序设计中,若服务特定类型的方法在许多方面都很类似,则此类型即有高内聚性。在一个高内聚性的系统中,代码可读性及复用的可能性都会提高,程序虽然复杂,但可被管理。

以下的情形会降低程序的内聚性:

许多机能封装在一类型内,可以借由方法供外界使用,但机能彼此类似之处不多。

在方法中进行许多不同的机能,使用的是相关性低或不相关的数据。

低内聚性的缺点如下:

增加理解模块的困难度。

增加维护系统的困难度,因为一个逻辑修改会影响许多模块,而一个模块的修改会使得一些相关模块也要修改。

增加模块复用困难度,因为大部分的应用程序无法复用一个由许多不一定相关的机能组成的模块。[1]

内聚性是一种非量化的量测,可利用评量规准来确认待确认源代码的内聚性的分类。内聚性的分类如下,由低到高排列:

偶然内聚性(Coincidental cohesion,最低)

偶然内聚性是指模块中的机能只是刚好放在一起,模块中各机能之间唯一的关系是其位置在同一个模块中(例如:“工具”模块)。

逻辑内聚性(Logical cohesion)

逻辑内聚性是只要机能在逻辑上分为同一类,不论各机能的本质是否有很大差异,就将这些机能放在同一模块中(例如将所有的鼠标和键盘都放在输入处理副程序中)。模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

时间内聚性(Temporal cohesion)

时间内聚性是指将相近时间点运行的程序,放在同一个模块中(例如在捕捉到一个异常后调用一函数,在函数中关闭已打开的文件、产生错误日志、并告知用户)。

程序内聚性(Procedural cohesion)

程序内聚性是指依一组会按照固定顺序运行的程序放在同一个模块中(例如一个函数检查文件的权限,之后打开文件)。

联系内聚性/信息内聚/通信内聚(Communicational cohesion)

联系内聚性是指模块中的机能因为处理相同的数据或者指各处理使用相同的输入数据或者产生相同的输出数据,所以放在同一个模块中(例如一个模块中的许多机能都访问同一个记录)。

依序内聚性/顺序内聚(Sequential cohesion)

依序内聚性是指模块中的各机能彼此的输入及输出数据相关,一模块的输出数据是另一个模块的输入,类似工厂的生产线(例如一个模块先读取文件中的数据,之后再处理数据)。

功能内聚性(Functional cohesion,最高)

功能内聚性是指模块中的各机能是因为它们都对模块中单一明确定义的任务有贡献(例如XML字符串的词法分析)。

相关查询: 计算机 内聚性 组合成 应用在 程序设计 许多方面 可读性 可能性
最新查询:松田阵平 yibin 王夫之 多德雷赫特 独立游戏节 自然资源 角闪石 给人以 铜锈草 弯曲状 中西部 哨所里 中医院 梅里特 哪一天 新城市 司法局 北极星 化学家 净气砂 到期日 医学院 副代表 文献学 总面积 右前方 古典派 黑鹰队 通达情理 芦淞区 骑车人 SCHIPPERKE 内政部 穷小子 各地方 金棕色 古生界 情意相投 功德无量 工业化 斯利蒙鲎科 汤姆斯 亚麻油 圈子里 几小时 协议书 佛教界 东方红 高风险 杰弗逊 投资者 红血球 主人家 英国人 大多是 教育家 丹尼斯 漆包线 掷骰子 布里亚 游乐场 如此之 的确是 长安城 浸透性 人欢马叫 新西兰 对抗赛 夏金堂 天文台 锅炉房 不育症 冲浪者 股骨颈 著名者 无神论 柏克莱 高永夏 演说家 内聚性
友情链接: 知道 电影 百科 好搜 问答 微信 值得买 巨便宜 天天特价 洛阳汽车脚垫 女装 女鞋 母婴 内衣 零食 美妆 汽车 油价 郑州 北京 上海 广州 深圳 杭州 南京 苏州 武汉 天津 重庆 成都 大连 宁波 济南 西安 石家庄 沈阳 南阳 临沂 邯郸 保定 温州 东莞 洛阳 周口 青岛 徐州 赣州 菏泽 泉州 长春 唐山 商丘 南通 盐城 驻马店 佛山 衡阳 沧州 福州 昆明 无锡 南昌 黄冈 遵义
© 2025 haodianxin 百科 豫ICP备14030218号-3 消耗时间:0.038秒 内存0.86MB 2025-09-29 14:07:58