什么是cohesion?cohesion在哪些方面体现?
Cohesion是指软件中模块内部各个元素之间的联系程度。它反映了模块内部各个元素之间的紧密程度和关联程度。在软件设计中,高内聚性是一种很好的设计原则,它可以提高程序的可读性、可维护性和可扩展性。
Cohesion主要体现在以下几个方面:
1.功能内聚(Functional cohesion):模块内部的各个元素都是为了完成某个特定的功能而存在的,它们之间的联系非常紧密。这种内聚性是最好的,因为它可以使得模块的功能非常清晰明了,易于理解和维护。
2.顺序内聚(Sequential cohesion):模块内部的各个元素按照一定的顺序排列,它们之间的联系主要是按照执行顺序来确定的。这种内聚性相对较差,因为它往往会导致代码的可读性和可维护性变差。
3.通信内聚(Communicational cohesion):模块内部的各个元素之间主要通过某种通信方式进行交互,例如参数传递、全局变量等。这种内聚性的优点是可以使得模块之间的耦合度较低,但是也容易导致模块的结构变得松散。
4.时间内聚(Temporal cohesion):模块内部的各个元素之间主要是按照时间顺序排列,例如初始化、清理等。这种内聚性相对较差,因为它往往会导致代码的可读性和可维护性变差。
5.逻辑内聚(Logical cohesion):模块内部的各个元素之间主要是按照逻辑关系进行排列,例如判断、循环等。这种内聚性相对较好,但是也容易导致模块的结构变得复杂。
为了提高软件的内聚性,我们可以采取以下几种措施:
1.尽量减少全局变量的使用,避免模块之间的耦合度过高。
2.尽量避免使用全局函数,尽量将函数定义在模块内部。
3.尽量减少模块之间的通信,例如参数传递、返回值等。
4.尽量将模块内部的各个元素按照一定的规则进行分类,例如按照功能、执行顺序等。
5.尽量避免使用过多的控制语句,例如if、while等,以减少模块的复杂度。
6.尽量将模块的内聚性提高到最大,以提高程序的可读性、可维护性和可扩展性。
Cohesion是软件设计中非常重要的一个概念,它可以帮助我们设计出高内聚性的软件模块,从而提高程序的质量和可维护性。在软件设计过程中,我们应该尽量避免一些常见的陷阱,例如全局变量、全局函数、过多的控制语句等,以提高软件的内聚性。