浅谈“高内聚,低耦合”

浅谈“高内聚,低耦合”

高内聚,低耦合官方概念:在软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则是高内聚低耦合。从模块粒度来看,高内聚:尽可能类的每个成员方法只完成一件事(最大限度的聚合); 低耦合:减少类内部,一个成员方法调用另一个成员方法。从类角度来看, 高内聚低耦合:减少类内部,对其他类的调用;从功能块来看 高内聚低耦合:减少模块之间的交互复杂度(接口数量,参数数据)即横向:类与类之间、模块与模块之间;纵向:层次之间;尽可能,内容内聚,数据耦合。

下面是我的理解:
我认为软件就如一个饭馆一样,面向顾客。
饭馆里面有2个厨师,一个服务员,一个收银员,厨师一只负责做菜,厨师二负责做汤,服务员只负责服务客户,收银员只负责收银,现在这个饭馆整体就构建完了,然后开始营业,招待客人。(每个人只负责自己那摊儿东西,这就叫高内聚,如果服务员又能做菜又能招待客人,就叫做低内聚)
然后有一天,老板心情不好,嫌弃厨师二做的汤不好喝,就把厨师二炒鱿鱼了,虽然这样,但对饭馆的影响并不大,还是可以正常招呼客人(这里就是高内聚的好处,不影响其他功能的进行,叫做有利于软件的更新与维护)。
厨师二走了呢,但是缺少一个做汤的,咋办呀,在招一个呗,然后老板就又招了一个厨师,我们就把他叫做张三吧。(这里就体现出了低耦合,没说饭馆只能要厨师二做汤吧,张三也能胜任做汤的职位,所以这就是低耦合的好处,换谁上谁都行)
所以只有这样饭馆才能长久的存活下去,不是说没了谁就不能干了,当然,没了老板不行,没了顾客也不行。
总结
高内聚就是说个自干各自的事情。
低耦合就是整体方面不是必须固定的人从事固定的岗位,而是固定的岗位,可以换人来干,减少了因一个人,而整体崩盘的风险。

你可能感兴趣的:(笔记,软件架构)