產(chǎn)品經(jīng)理 | 什么是解耦?
在理解解耦之前,我們先來理解耦合度。耦合度是軟件工程領(lǐng)域的概念,是指模塊之間的依賴程度。
這里的模塊可以小到一個(gè)小功能,也可以大到一個(gè)系統(tǒng)。
那么對(duì)應(yīng)的,解耦就是解除模塊之間的耦合關(guān)系。
降低模塊之間的依賴程度也可以理解為解耦,模塊之間有依賴關(guān)系就必然存在耦合,
0耦合是基本無可能的,那是最理想的狀態(tài)。
耦合度越低,模塊之間依賴的程度越低,模塊的獨(dú)立性、復(fù)用性和可移植性就越強(qiáng)。
那么如何判斷2個(gè)有關(guān)聯(lián)的模塊的耦合程度呢?
1)是否有牽一發(fā)而動(dòng)全身的現(xiàn)象?
一個(gè)小的改動(dòng),會(huì)影響到依賴它的所有模塊,這是耦合度高的典型表現(xiàn)。
比如A模塊和B模塊都依賴于C模塊,當(dāng)A模塊有特殊需求,要求C模塊支持時(shí),C模塊沒法改造,C模塊一改造會(huì)影響到接入它的所有模塊。
2)看模塊的復(fù)用性
可復(fù)用性越高,說明耦合度越低
3)看模塊的可移植性
可移植性越高,說明耦合度越低
舉個(gè)例子:比如公司有一個(gè)電商A產(chǎn)品,它里面有搜索推薦功能,但是搜索推薦功能是強(qiáng)耦合在電商產(chǎn)品里面的,即搜索推薦和它的基礎(chǔ)功能代碼邏輯強(qiáng)耦合。
如果這時(shí)公司又推出一個(gè)新的電商B產(chǎn)品,也需要一樣的搜索推薦功能,因?yàn)橹癆產(chǎn)品把搜索推薦功能和它本身的基礎(chǔ)功能強(qiáng)耦合在一起了,搜索推薦功能就很難去復(fù)用了。
如果把A產(chǎn)品的基礎(chǔ)功能和搜索推薦功能解耦,各司其職,分開2個(gè)獨(dú)立的模塊,以后任何產(chǎn)品想接入搜索推薦功能的話,按照接入標(biāo)準(zhǔn)接入即可。
小結(jié):如果很難降低2個(gè)模塊的耦合度,那么可能是模塊之間職責(zé)分工不合理、調(diào)用方式有問題、或者設(shè)計(jì)模式不合理等等。
? ?
--- end?----
???產(chǎn)品經(jīng)理的技術(shù)思維之降級(jí)思維
???微信掃碼背后隱藏的秘密
? ?一次大廠數(shù)據(jù)分析的面試總結(jié)
