现在的位置: 首页 > 综合 > 正文

为什么要高内聚低耦合?

2012年03月16日 ⁄ 综合 ⁄ 共 718字 ⁄ 字号 评论关闭

             首先我觉的有必要声明高内聚低耦合是基于面向对象思想的概念,所以撇开面向对象这个基本思想来理解高内聚低耦合可能比较不容易。但是网络上的文章和博客大多只是单纯的以高内聚低耦合来谈高内聚低耦合。本篇博客试图结合面向对象的思想来谈高内聚低耦合,看看是不是比较容易理解。

        所谓内聚是指:模块内部各部分之间的联系,以七个等级来表示模块内各部分联系的程度。

        所谓耦合是指:模块间的联系,分七个等级来表示模块间的联系的程度。

        大家都知道高内聚低耦合是衡量一个软件质量的重要标准,但是为什么呢?

        首面向对象的主要特点是封装、继承和多态。实质上是将本来混乱的代码尽可能的抽象出共性,分门别类。最终达到复用,提高开发效率和保证软件质量的目的。大家知道蜘蛛以网来捕捉昆虫,因为网中的各个节点是互相联系的,这样增加了蜘蛛网的韧性不容易被昆虫冲破。而面向对象追求的是代码复用和运行稳定,即在模块之间减少联系。可以想象,如果各模块之间联系太过紧密对于代码复用是不容易的,因为很难会再找到同样适合的环境。同时对于运行来说也是不利的,软件发生错误是不可避免的,那么各模块如果联系紧密则错一处而动全身,好比多米诺骨牌。所以一个好的软件各模块之间的联系不能过分紧密,即低耦合。

       面向对象的思想追求的是每个模块的动能单一,模块间越独立越好。即在划分模块时,只有为了完成一个功能的各个元素才会被划分到一个模块中。所以模块内部的各个元素必须是联系紧密的,否则就说明模块划分还没有到位。所以模块内部需是联系紧密的,即高内聚。

       不知道是不是能说清楚为什么高内聚低耦合是软件质量的标准!

抱歉!评论已关闭.