天天看点

什么是高内聚,低耦合?

什么是高内聚,低耦合?

高内聚,低耦合是一个老生常谈的话题,所以拿出来说一下

我们在看Linux的一些资料,或者是在面试,又或者跟一个比较牛的大佬讨论技术的时候,可能会听到这个概念。

所以,什么是高内聚,低耦合呢?

| 高内聚,我们指的是认识的一群人或者一些东西分成的一类聚合在一起。

| 低耦合,就是我们分成一类的这些东西,他们自成一类,不会出现交叉。

什么是高内聚,低耦合?

看上面的图片,荔枝,香蕉,和苹果,都是依次分类在一起,不会出现耦合,耦合你可以理解成偶遇可能会更贴切一些。

那高内聚、低耦合的相反的呢?

那就是低内聚、高耦合了。

不同的东西聚合在一起,不同的人或者类别不断的偶遇,这就是低内聚、高耦合了。

如下图:

什么是高内聚,低耦合?

所以,我们得出一个非常惊人的结论

高内聚必然低耦合、低耦合必然高内聚

举例子说明一切

《权力的游戏》中,坦格利安家族要求家族里面的人只能和家族成员的人进洞房,这就导致了家族成员和家族以外的人偶遇的概率基本没有,所以这就是一个典型的高内聚、低耦合的实例。

什么是高内聚,低耦合?

再比如

一个篮球运动员,他的任务是打篮球,打篮球比赛,练习篮球,然后看很多相关的篮球视频。如果他就只是做这样的事情,那他就是一个高内聚,低耦合的表现。

但是呢,如果这个篮球运动员,他参加了美食综艺节目,还参加了相亲节目,更加夸张了是,奥运会,这个篮球运动员还去参加了游泳项目。那这个篮球运动员就是低内聚、高耦合的表现了。

我们在Linux代码里面强调高内聚、低耦合也是一样的道理、固定的模块只完成固定的工作,不要干涉他国内政。

最后,发一张图,是知识星球的同学提问的,也涉及到这个问题。

欢迎大家一起讨论

什么是高内聚,低耦合?
什么是高内聚,低耦合?
什么是高内聚,低耦合?