面向?qū)ο笤O(shè)計(jì)原則概述

對(duì)于面向?qū)ο筌浖到y(tǒng)的設(shè)計(jì)而言,在支持可維護(hù)性的同時(shí),提高系統(tǒng)的可復(fù)用性是一個(gè)至關(guān)重要的問題,如何同時(shí)提高一個(gè)軟件系統(tǒng)的可維護(hù)性和可復(fù)用性是面向?qū)ο笤O(shè)計(jì)需要解決的核心問題之一。在面向?qū)ο笤O(shè)計(jì)中,可維護(hù)性的復(fù)用是以設(shè)計(jì)原則為基礎(chǔ)的。每一個(gè)原則都蘊(yùn)含一些面向?qū)ο笤O(shè)計(jì)的思想,可以從不同的角度提升一個(gè)軟件結(jié)構(gòu)的設(shè)計(jì)水平。

面向?qū)ο笤O(shè)計(jì)原則為支持可維護(hù)性復(fù)用而誕生,這些原則蘊(yùn)含在很多設(shè)計(jì)模式中,它們是從許多設(shè)計(jì)方案中總結(jié)出的指導(dǎo)性原則。面向?qū)ο笤O(shè)計(jì)原則也是我們用于評(píng)價(jià)一個(gè)設(shè)計(jì)模式的使用效果的重要指標(biāo)之一,在設(shè)計(jì)模式的學(xué)習(xí)中,大家經(jīng)常會(huì)看到諸如“XXX模式符合XXX原則”、“XXX模式違反了XXX原則”這樣的語句。

最常見的7種面向?qū)ο笤O(shè)計(jì)原則如下表所示:

設(shè)計(jì)原則名稱 定義 使用頻率
單一職責(zé)原則
(Single Responsibility Principle, SRP)
一個(gè)類只負(fù)責(zé)一個(gè)功能領(lǐng)域中的相應(yīng)職責(zé) ★★★★☆
開閉原則
(Open-Closed Principle, OCP)
軟件實(shí)體應(yīng)對(duì)擴(kuò)展開放,而對(duì)修改關(guān)閉 ★★★★★
里氏代換原則
(Liskov Substitution Principle, LSP)
所有引用基類對(duì)象的地方能夠透明地使用其子類的對(duì)象 ★★★★★
依賴倒轉(zhuǎn)原則
(Dependence Inversion Principle, DIP)
抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象 ★★★★★
接口隔離原則
(Interface Segregation Principle, ISP)
使用多個(gè)專門的接口,而不使用單一的總接口 ★★☆☆☆
合成復(fù)用原則
(Composite Reuse Principle, CRP)
盡量使用對(duì)象組合,而不是繼承來達(dá)到復(fù)用的目的 ★★★★☆
迪米特法則
(Law of Demeter, LoD)
一個(gè)軟件實(shí)體應(yīng)當(dāng)盡可能少地與其他實(shí)體發(fā)生相互作用 ★★★☆☆

文章轉(zhuǎn)載自 —— 面向?qū)ο笤O(shè)計(jì)原則概述

?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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