内聚性是指模块内部各个元素之间的联系和一致性程度。常见的内聚性有以下七种:
1. 功能内聚(Functional Cohesion):模块内的元素按照完成相同功能或者相似功能的任务进行组织。例如,一个处理用户登录的模块,包括验证用户名、密码、生成登录凭证等功能。
2. 顺序内聚(Sequential Cohesion):模块内的元素按照完成一系列顺序相关的任务进行组织。例如,一个订单处理模块,包括创建订单、支付订单、发货等任务。
3. 通信内聚(Communicational Cohesion):模块内的元素按照完成相同数据或消息的传递任务进行组织。例如,一个消息处理模块,包括接收消息、解析消息、发送消息等任务。
4. 过程内聚(Procedural Cohesion):模块内的元素按照完成相同过程或者算法的任务进行组织。例如,一个排序算法模块,包括选择排序、冒泡排序、快速排序等任务。
5. 时间内聚(Temporal Cohesion):模块内的元素按照完成相同时间段内的任务进行组织。例如,一个日志记录模块,包括记录每天的日志、每周的日志等任务。
6. 逻辑内聚(Logical Cohesion):模块内的元素按照完成相同逻辑关系的任务进行组织。例如,一个数据验证模块,包括验证数据的合法性、一致性等任务。
7. 偶然内聚(Coincidental Cohesion):模块内的元素之间没有明显的联系,仅仅是因为历史原因或者其他非技术因素而被组织在一起。这种内聚性是最低的,应该尽量避免。
以上是七种常见的内聚性类型,通过合理的内聚性设计,可以提高模块的可维护性、可测试性和可重用性。