内聚是软件工程中用来描述一个模块内部各个元素彼此结合的紧密程度的度量指标。它对于模块的独立性和可维护性有着重要影响。
内聚的类型
内聚性可以从低到高分为以下几种类型:
1. 偶然内聚:模块内的各处理元素之间没有任何联系。这种内聚性最弱。
2. 逻辑内聚:模块内执行几个逻辑上相关的功能,通过参数确定该模块完成哪一个功能。
3. 时间内聚:把需要同时或顺序执行的动作组合在一起形成的模块为时间内聚模块。
4. 过程内聚:如果一个模块内的处理元素是相关的,而且必须以待定次序执行,则称为过程内聚。
5. 通信内聚:指模块内所有处理功能都通过使用公用数据发生关系。
6. 顺序内聚:一个模块中各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行。
7. 功能内聚:模块内所有元素共同完成一个功能,缺一不可,模块已不可再分。这是最强的内聚。
内聚性的设计原则
- 高内聚:在设计时应尽量追求高内聚,即模块的功能明确且单一。高内聚的模块独立性强,易于理解和维护。
- 低耦合:与高内聚相对应,低耦合指的是模块之间的依赖关系尽量少,这有助于减少修改一个模块对其他模块的影响,提高系统的可维护性。