一、解耦的定義
解耦就是把系統(tǒng)功能和邏輯拆分。
為什么拆分。一個不解耦的系統(tǒng)就像把若干根線纏繞到一起,你想抽出任何一根都困難;不解耦的系統(tǒng)就像堆的混亂無序的衣柜,你想找到你想要的衣服需要翻箱倒柜還找不到。
拆分后的系統(tǒng),就像你家分類整理好的衣柜,春天的,夏天的,外套,內(nèi)衣分類放好,你今天想穿哪件很容易找到。
二、解耦就是對抗變化和混亂
熵增定律講在一個孤立系統(tǒng)里,如果沒有外力做功,其總混亂度(即熵)會不斷增大。系統(tǒng)需求每天都在增加,每天都在增加功能,如果我們不做好規(guī)劃和整理,系統(tǒng)一定會越來越混亂,直到崩潰。所以我們要用解耦來對抗變化和復(fù)雜性。
三、解耦的指導(dǎo)思想
把一件復(fù)雜的任務(wù)拆成若干個相對簡單且獨立的子任務(wù),理想狀態(tài)是子任務(wù)之間沒有相互影響。
就好比生產(chǎn)一部手機,有的企業(yè)專門造屏幕,有的企業(yè)專門造芯片,有的企業(yè)專門造操作系統(tǒng),本來生產(chǎn)手機這件很復(fù)雜的事情被拆分成了若干個子任務(wù),大家都不需要知道造手機的全部環(huán)節(jié)卻最后把手機造出來了。
四、解耦的方法1-識別并區(qū)分業(yè)務(wù)功能和規(guī)則
需求分析過程中,要分清楚哪些是業(yè)務(wù)功能,哪些是業(yè)務(wù)規(guī)則,并有意將他們分開闡述。
舉個例子要設(shè)計一個需求:線上商城賣蘋果8塊錢1斤,但是成為會員可以6塊錢1斤。我們拆分成:業(yè)務(wù)功能是賣東西,業(yè)務(wù)規(guī)則是**商品對**人**價。
如果不拆分,我們直接按照需求原樣實現(xiàn)出來,那就只能賣蘋果,假如明天又要賣梨,那我們做出來的功能就要整體推翻再改;
如果拆分,即便是明天賣梨,那業(yè)務(wù)功能這個模塊邏輯還是賣東西沒有變化,只需要變化業(yè)務(wù)規(guī)則模塊的邏輯即可。相當(dāng)于只改變了其中一個子任務(wù)的邏輯,另外一個子任務(wù)不受影響。
最后,識別并區(qū)分業(yè)務(wù)功能和規(guī)則也可以理解成區(qū)分穩(wěn)態(tài)(不變)和敏態(tài)(經(jīng)常變動)邏輯。理解方式不同而已。