最近工作內(nèi)容涉及到設(shè)計(jì)模式的使用,趁此機(jī)會(huì)重新溫習(xí)一下設(shè)計(jì)原則。
首先,設(shè)計(jì)模式是指軟件開發(fā)中,經(jīng)過驗(yàn)證的,用于解決在特定環(huán)境下、重復(fù)出現(xiàn)的、特定問題的解決方案。
目前常見的設(shè)計(jì)模式有23種,但工作中,并不是套用這23種模式就可以。因?yàn)檐浖_發(fā)中,有各種不同的場(chǎng)景和問題,很少會(huì)出現(xiàn)完全符合的設(shè)計(jì)模式,你需要去權(quán)衡利弊,選擇最合適的方案。設(shè)計(jì)原則就是思想上的指導(dǎo)。
常見面向?qū)ο笤O(shè)計(jì)原則有如下幾種:
1.單一職責(zé)原則
即,一個(gè)類應(yīng)該僅有一個(gè)引起它變化的原因。難點(diǎn)在于,如何區(qū)分“職責(zé)”。
2.開放-關(guān)閉原則
即,一個(gè)類應(yīng)該對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。關(guān)鍵在于,合理地抽象、分離出變化與不變化的部分,為變化的部分預(yù)留可擴(kuò)展的方式。
3.里氏替換原則
即,子類必須能替換掉它的父類型。
4.依賴倒置原則
即,要依賴于抽象,不要依賴于具體類。典型的應(yīng)該做到:高層模塊不應(yīng)該依賴于底層模塊,二者都應(yīng)該依賴于抽象;抽象不應(yīng)該依賴于具體實(shí)現(xiàn),具體實(shí)現(xiàn)應(yīng)該依賴于抽象;
5.接口隔離原則
即,不應(yīng)該強(qiáng)迫客戶依賴于他們不用的方法。該原則適合處理比較“龐大”的接口。
6.最少知識(shí)原則
即,盡量減少對(duì)象之間的交互,使方法調(diào)用必須保持在一定的界限范圍之內(nèi),減少對(duì)象的依賴。