一、解耦的定義
解耦就是把系統(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)常變動)邏輯商架。理解方式不同而已。