高内聚、低耦合是软件设计中的一个原则,其中内聚是指模块内部各元素之间联系的紧密程度,也就是代码功能的集中程度。耦合是指模块之间相互联系的紧密程度。
模块的内聚类型通常可以分为7种,根据内聚度从高到低排序如下:
1)功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。
2)顺序内聚:处理元素相关,而且必须顺序执行。
3)通信内聚:所有处理元素集中在一个数据结构的区域上。
4)过程内聚:处理元素相关,而且必须按特定的次序执行。
5)瞬时内聚:所包含的任务必须在同一时间间隔内执行(如初始化模块)。
6)逻辑内聚:完成逻辑上相关的一组任务。
7)偶然内聚:完成一组没有关系或松散关系的任务。
模块的耦合类型通常分为7种,根据耦合度从低到高排序如下:
1)非直接耦合:没有直接联系,互相不依赖对方。
2)数据耦合:借助参数表传递简单数据。
3)标记耦合:一个数据结构的一部分借助于模块接口被传递。
4)控制耦合:模块间传递的信息中包含用于控制模块内部逻辑的信息。
5)外部耦合:与软件以外的环境有关。
6)公共耦合:多个模块引用同一个全局数据区。
7)内容耦合:一个模块访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口。
数据耦合是指两个模块之间通过简单的数据传递而形成的耦合;
外部耦合是指模块间无直接关联,而是通过模块的外部数据环境中的简单全局变量产生的关联;
公共耦合是指模块通过公共数据环境中的复杂全局变量(全局数据结构)、共享的通信区、内存的公共区域等产生的耦合;
内容耦合是指一个模块通过直接使用另一个模块的内部数据,或者通过非正常入口转入另一个模块内部,从而与另一个模块之间形成耦合,这种耦合是危险的;
网友评论