首页 > 编程知识 正文

怎么理解高内聚低耦合,低内聚高耦合什么意思

时间:2023-05-03 20:23:27 阅读:239515 作者:3695

文章目录 1.前言2.什么是高内聚?3.什么是低耦合?4.总结

1.前言

相信平时在开发中(代码重构,或者软件设计过程中),经常会听到要遵循高内聚,低耦合的原则,那么什么时候高内聚,低耦合呢?

2.什么是高内聚?

我们常说的高内聚,一般都是功能内聚,高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。模块的内聚反映模块内部联系的紧密程度。一个模块只需做好一件事件,不要过分关心其他任务。高内聚性的好处是可以提高程序的可靠性。这个是官方的定义,下面是我的理解:高内聚就是一个模块内各个元素彼此结合的紧密程度高,并且这些元素的各个组成部分全部都为完成同一个功能而存在,共同完成一个单一的功能,什么意思呢?比如有个计算价格的模块(calculate Price),那么这个模块里面的元素都以计算价格紧密相关,不会有什么其他的功能业务(查询价格,修改价格等),职责非常单一,什么是职责单一?(例如:你是个厨师,你做的活应该只负责炒菜,但是招待客人,洗碗拖地,收银这样活你都干,那么这个你的职责就不单一了,你就要想下,是不是要把这些业务都分出去,招待客人是不是应该是服务员的职责,洗碗拖地是不是保洁的职责,收银是不是前台收银员的职责,这样各干各的活,如果有人不干了,我只要换了人过去顶替就可以了,不会影响到其他的功能),并且这些元素共同完成计算价格这个功能,

3.什么是低耦合?

模块与模块之间、系统与系统之间的交互,是不可避免的, 但是我们要尽量减少由于交互引起的单个模块无法独立使用或者无法移植的情况发生, 尽可能多的单独提供接口用于对外操作, 这个就是所谓的“低耦合”,耦合指的是模块之间存在依赖,关系越紧密, 耦合越强, 模块独立性越差,例如:我们平时用的电脑,电脑里面有主板,如果主板要指定的显卡电脑才能运行,那么这个主板和显卡高耦合,日常生活中,我们的电脑主板都会提供一个接口(插槽)给显卡,一般的显卡都可以(除了一些高配显卡,低配主板,带不动),所以主板和显卡是属于低耦合的

4.总结

一个好的系统应该是分成各个小块,分而治之的思想,把复杂问题分成小问题,逐个击破。每个小块应该是高内聚,小块之间应该是低耦合的。高内聚说的是这个小块的功能已经不可分割了,已经足够简单。耦合说的是这个小块依赖其他小块提供的功能,低就是少,弱,高耦合就是多,而且强。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。