为何“高内聚 低耦合”是软件质量的标准 高耦合不行吗?
所谓内聚是指:模块内部各部分之间的联系,以七个等级来表示模块内各部分联系的程度。
所谓耦合是指:模块间的联系,分七个等级来表示模块间的联系的程度。
大家都知道高内聚低耦合是衡量一个软件质量的重要标准,但是为什么呢?
首先面 向对象的主要特点是封装、继承和多态。实质上是将本来混乱的代码尽可能的抽象出共性,分门别类。最终达到复用,提高开发效率和保证软件质量的目的。大家知 道蜘蛛以网来捕捉昆虫,因为网中的各个节点是互相联系的,这样增加了蜘蛛网的韧性不容易被昆虫冲破。而面向对象追求的是代码复用和运行稳定,即在模块之间 减少联系。可以想象,如果各模块之间联系太过紧密对于代码复用是不容易的,因为很难会再找到同样适合的环境。同时对于运行来说也是不利的,软件发生错误是不可避免的,那么各模块如果联系紧密则错一处而动全身,好比多米诺骨牌。所以一个好的软件各模块之间的联系不能过分紧密,即低耦合。
面向对象的思想追求的是每个模块的动能单一,模块间越独立越好。即在划分模块时,只有为了完成一个功能的各个元素才会被划分到一个模块中。所以模块内部的各个元素必须是联系紧密的,否则就说明模块划分还没有到位。所以模块内部需是联系紧密的,即高内聚。