設(shè)計(jì)模式,及軟件設(shè)計(jì)中的“套路”。每一個(gè)模式描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問題,以及該問題解決方案的核心,這樣,你就能一次又一次的使用該方案而不必做重復(fù)的勞動(dòng)。設(shè)計(jì)模式大約有20多種,它們使人們可以更加簡(jiǎn)單方便的復(fù)用成功的設(shè)計(jì)和體系結(jié)構(gòu),提高系統(tǒng)維護(hù)的有效性。與設(shè)計(jì)模式密切相關(guān)的是6大設(shè)計(jì)原則,那么就從這些設(shè)計(jì)原則開始設(shè)計(jì)模式重溫之旅吧。(ps:內(nèi)容有點(diǎn)小多)
一、6大設(shè)計(jì)模式
1、單一職責(zé)原則
核心思想:應(yīng)該有且僅有一個(gè)原因引起類的變更
問題描述:假如有類Class1完成職責(zé)T1,T2,當(dāng)職責(zé)T1或T2有變更需要修改時(shí),有可能影響到該類的另外一個(gè)職責(zé)正常工作。
好處:類的復(fù)雜度降低、可讀性提高、可維護(hù)性提高、擴(kuò)展性提高、降低了變更引起的風(fēng)險(xiǎn)。
需注意: 單一職責(zé)原則提出了一個(gè)編寫程序的標(biāo)準(zhǔn),用“職責(zé)”或“變化原因”來衡量接口或類設(shè)計(jì)得是否優(yōu)良,但是“職責(zé)”和“變化原因”都是不可以度量的,因項(xiàng)目和環(huán)境而異。
單一職責(zé)就是讓類(或方法)的功能單一,做到術(shù)業(yè)有且專攻,是不是有點(diǎn)UNIX設(shè)計(jì)思想的感覺?
2、里斯替換原則
核心思想:在使用基類的的地方可以任意使用其子類,能保證子類完美替換基類。
通俗來講:只要父類能出現(xiàn)的地方子類就能出現(xiàn)。反之,父類則未必能勝任。
好處:增強(qiáng)程序的健壯性,即使增加了子類,原有的子類還可以繼續(xù)運(yùn)行。
需注意:如果子類不能完整地實(shí)現(xiàn)父類的方法,或者父類的某些方法在子類中已經(jīng)發(fā)生“畸變”,則建議斷開父子繼承關(guān)系 采用依賴、聚合、組合等關(guān)系代替繼承。