設(shè)計(jì)模式的原則

面向?qū)ο蟮脑瓌t是面向?qū)ο蟮哪繕?biāo),而設(shè)計(jì)模式是為了實(shí)現(xiàn)這些原則的手段和方法。這也就是為什么要有設(shè)計(jì)模式。

面向?qū)ο蟮脑瓌t:

1. 單一職責(zé)原則

一個(gè)類(lèi)只完成一個(gè)功能,完成相同功能的模塊封裝在一個(gè)類(lèi)里。

2. 開(kāi)閉原則

一個(gè)類(lèi)的代碼要對(duì)修改封閉,對(duì)拓展開(kāi)放。即,不能修改類(lèi)內(nèi)部的代碼,如果要修改,需要使得接口函數(shù)中使用抽象類(lèi),通過(guò)修改繼承抽象類(lèi)的子類(lèi)的功能來(lái)修改。或者通過(guò)Class.forName(“某個(gè)類(lèi)的字符串”)來(lái)動(dòng)態(tài)的獲得類(lèi)的信息,修改配置文件獲得不同的類(lèi)從而來(lái)修改。開(kāi)閉原則是面向?qū)ο笤O(shè)計(jì)的目標(biāo)。

3. 里氏替換原則

父類(lèi)可以透明的替換成子類(lèi)。一個(gè)類(lèi)的實(shí)例如果能夠正確運(yùn)作在一個(gè)函數(shù)里,那這個(gè)類(lèi)的子類(lèi)的實(shí)例也可以在這個(gè)函數(shù)里面正確運(yùn)行。父類(lèi)可以透明的替換成子類(lèi),也就側(cè)面要求了子類(lèi)不能有比父類(lèi)更加嚴(yán)格的訪問(wèn)限制和拋出更多的異常。

4. 依賴(lài)倒置原則

面向抽象編程。即,模塊依賴(lài)的應(yīng)該是抽象類(lèi)和接口,依賴(lài)類(lèi)是面向?qū)ο髮?shí)現(xiàn)開(kāi)閉原則的重要手段。其中很重要的是依賴(lài)注入(其實(shí)就是對(duì)依賴(lài)的抽象類(lèi)賦值)。

5. 組合復(fù)用原則

即優(yōu)先使用成員變量的組合和聚合,把依賴(lài)的類(lèi)作為成員變量。組合和聚合的依賴(lài)可以通過(guò)類(lèi)似于spring依賴(lài)注入來(lái)自動(dòng)裝配。

6.迪米特法則

一個(gè)軟件實(shí)體應(yīng)當(dāng)盡可能少的和其他實(shí)體發(fā)生相互作用,即一個(gè)類(lèi)或者函數(shù)盡可能少的和其他類(lèi)或者函數(shù)有最少的依賴(lài)。

依賴(lài)是成員變量,函數(shù)的參數(shù),函數(shù)內(nèi)的局部變量等。通俗的說(shuō)就是沒(méi)有那項(xiàng)就沒(méi)有辦法運(yùn)行的就是依賴(lài)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容