《架構(gòu)整潔之道》第8章讀書札記
一個設(shè)計良好的計算機系統(tǒng)應(yīng)該在不需要修改的前提下就可以輕易被擴展却音。
這個道理一說出來毫深,想必身為被需求經(jīng)常改變而備受折磨的程序員會深深認同丘跌。但不需要被修改玫氢!這是這么辦到的芹血?
下面來說下我領(lǐng)悟到的步驟:
1.分層設(shè)計
作為有一定經(jīng)驗的程序必須要有能力去將程序設(shè)計進行分層屯碴。分層設(shè)計蚁滋,雖然在運行程序的速度上可能會帶來一定的損失憔购。但是想想MVC的思想如此重要就知道分層設(shè)計帶來的好處泼疑。而分層設(shè)計又是以單一職責(SRP)為基礎(chǔ)德绿,必須根據(jù)這一原則去進行分層。不然你設(shè)計的分層也不是真正的分層王浴。
其實我們在寫程序中就能體現(xiàn)到單一職責(SRP)脆炎,我們往往會把功能為一類的歸結(jié)到一個地方(類),慢慢地形成組件氓辣,而功能關(guān)聯(lián)的組件組合到一起也就慢慢形成一個層次秒裕。作為初級程序員,眼里只會看到一大堆需求而已钞啸,不會劃分職責几蜻。所以他們的代碼往往會職責不清喇潘,可怕的是修改一個地方,涉及到整個系統(tǒng)梭稚。
2.減少依賴
如果一個層級在設(shè)計上沒有依賴颖低,那么觸動它改變的只有它自身了。這時候我會想起一句話:高內(nèi)聚弧烤,低耦合忱屑!
3.給層級分等級
高層設(shè)計不應(yīng)該依賴于低層設(shè)計。這是因為:
高階組件不會因低階組件被修改而受到影響暇昂。