产品经理 | 什么是解耦?

产品的技术小课

共 784字,需浏览 2分钟

 ·

2022-05-31 02:17

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

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

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

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

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

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

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

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

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

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

2)看模块的复用性

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

3)看模块的可移植性

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

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

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

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

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

   

--- end ----

---- 推荐阅读 ----

   产品经理如何高效阅读技术文档
   开发常说的「部署」到底是什么?
   我在腾讯做技术产品这三年(上)

   产品经理的技术思维之降级思维

   微信扫码背后隐藏的秘密

   一次大厂数据分析的面试总结


浏览 139
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报