一.什么是高内聚、低耦合?
在结构化分析与模块设计方法中,模块化是一个很重要的概念,它是将一个待开发的软件分解成为若干个小的模块,每个模块可以独立地开发、测试。使得复杂问题的“分而治之”,令程序的结构清晰、易于测试与修改。而模块的独立性通常要求每个模块能尽可能完成一个相对独立的子功能,并且与其他模块少点联系,软件设计上用耦合(模块之间联系的紧密程度)和内聚(模块内部各元素之间联系的紧密程度)两个标准来衡量,所以设计的目标就是高内聚、低耦合。
二.耦合的七种类型
模块的耦合性类型通常分为7 种,根据耦合度从低到高排序,如图下所示:
非直接耦合最为简单,就是一个拥有着独立思维做好自己少别管别人的好模块:
数据耦合可以理解为通过传送数据变量来进行数据传递,例如一些简单的int、float之类的变量:
而标记耦合则是通过一些数据结构进行模块间的数据传递,例如结构体、链表等等:
模块之间传递信息中包含用于控制模块内部的信息被称为控制耦合,例如模块A中的if语句需要模块B来决定究竟走哪边,有种生死大权仍由别人决定的感觉:
外部耦合为多个模块共同访问相同的全局变量:
公共耦合则是多个模块共同访问一些全局数据结构,类似结构体之类的:
内容耦合属于你中有我,我中有你,模块A可以通过走后门将数据传递给模块B,不按正常步骤来,也可以是模块与模块之间有代码重叠等等: