产品经理 | 什么是解耦?

2022-09-02 19:18:59 浏览数 (1)

在理解解耦之前,我们先来理解耦合度。耦合度是软件工程领域的概念,是指模块之间的依赖程度。

这里的模块可以小到一个小功能,也可以大到一个系统。

那么对应的,解耦就是解除模块之间的耦合关系。

降低模块之间的依赖程度也可以理解为解耦,模块之间有依赖关系就必然存在耦合

0耦合是基本无可能的,那是最理想的状态。

耦合度越低,模块之间依赖的程度越低,模块的独立性复用性可移植性就越强。

那么如何判断2个有关联的模块的耦合程度呢?

1)是否有牵一发而动全身的现象?

一个小的改动,会影响到依赖它的所有模块,这是耦合度高的典型表现。

比如A模块和B模块都依赖于C模块,当A模块有特殊需求,要求C模块支持时,C模块没法改造,C模块一改造会影响到接入它的所有模块。

2)看模块的复用性

可复用性越高,说明耦合度越低

3)看模块的可移植性

可移植性越高,说明耦合度越低

举个例子:比如公司有一个电商A产品,它里面有搜索推荐功能,但是搜索推荐功能是强耦合在电商产品里面的,即搜索推荐和它的基础功能代码逻辑强耦合。

如果这时公司又推出一个新的电商B产品,也需要一样的搜索推荐功能,因为之前A产品把搜索推荐功能和它本身的基础功能强耦合在一起了,搜索推荐功能就很难去复用了。

如果把A产品的基础功能和搜索推荐功能解耦,各司其职,分开2个独立的模块,以后任何产品想接入搜索推荐功能的话,按照接入标准接入即可。

小结:如果很难降低2个模块的耦合度,那么可能是模块之间职责分工不合理、调用方式有问题、或者设计模式不合理等等。

--- end ----

0 人点赞