高内聚低耦合什么意思?合理通俗解释

TheDisguiser 2020-07-13 17:49:40 java常见问答 3961

我们常听一些厉害的程序员说过高内聚、低耦合,小伙伴们知道它们是什么意思吗?下面听小编为你解析一下。

什么是低耦合?

官方的说,耦合就是元素与元素之间的连接、感知与依赖量度。元素代表什么?这里的元素代指各种功能、对象、模块、系统、子系统。

例如:我们现在有方法A 1与A 2

这里我们要在A 1元素中去调用A 2元素,当A 2元素出现问题或不存在的时,A 1元素就不能正常的工作,那么就可以说A 1元素和A 2元素是耦合的。

耦合问题

我们知道,一个项目中如果必须依赖某一样东西,那这个项目就容易出问题。如:当元素A2变更或不存在时,都会影响到元素A 1的正常运作,极大的影响了系统的可维护性与易变更性。同时元素A 1只能运行在元素A2中,这也大大的降低了A 1元素的可复用性。正因为耦合的种种弊端,因此我们才需要在软件设计上尽量追求低耦合。

如何做到低耦合?

一个元素不能够过度依赖其他元素

职责合理划分:让系统中的对象各司其职,不仅是提高内聚的要求,同时也可以有效的低耦合。

尽量使用接口而不是继承:其实实际的说,继承也是一种耦合,如:子类A继承父类B,不管是直接继承还是间接继承,一但父类B不存在或者发生了其他变数,子类A就不得不修改或重写。如若父类B的子类有数十上百,就可以说是灾难性的变更了。

什么是高内聚?

高内聚通俗的说就是一个评判软件设计质量的标准。在业界里,内聚比较专业的叫法是功能内聚,意思是对系统中元素职责的相关性和集中度的量度。如果这个元素有高度的相关职责,并且除了这些职责外再没有其他工作,那么这个元素就是高内聚的。

例如:

这就好像,如果我是一个老师,我的职责就是教育与帮助我的学生完成各个阶段的学习任务。当学生有什么学习问题,我就能够根据问题告诉她相应的的解决方法,但如果我跟她们一起学习的话,我就不是一个高内聚的元素了,因为学习并不是我的职责。

为什么要高内聚?

因为它拥有程序最需要的高可读、高复用、高可维护性和高易变更性。

这就是文章的所有内容了,如果想要学习java,这种类似的java基础思想是不可或缺的,希望本篇文章对你理解java的思想有所帮助。

推荐阅读:

高内聚低耦合是什么基本原则?原则详解

如何实现高内聚低耦合?高内聚低耦合的现实例子