軟件開發(fā)面向?qū)ο笤O(shè)計(jì)原則
作者:佚名 時間:2015-01-19 分享到:
什么樣的設(shè)計(jì)才是一個良好的面向?qū)ο笤O(shè)計(jì)?一個面向?qū)ο蟮脑O(shè)計(jì)應(yīng)該遵守下面幾個法則;
1.單一職責(zé)原則
單一職責(zé)原則的具體表述為,一個類應(yīng)該有且僅有一個職責(zé),所謂一個類的職責(zé)是指引起這個類變化的原因,如果一個類具有一個以上的職責(zé),那么就會有多個不同的原因引起這類變化,其實(shí)就是耦合了多個互相不相關(guān)的職責(zé),就會降低這個類的內(nèi)聚性.
2.關(guān)閉原則
這個原則的意思是軟件實(shí)體應(yīng)該對擴(kuò)展開放,而對修改關(guān)閉.
3.里氏代換原則
里氏代換原則指子類型能夠替換掉它們的基類型,若對每個類型s的對象o1都存在一個類型t的o2,使得在所有針對t編寫的程序p中,用o1替換o2后,程序p行為功能不變,則s是t的子類型4.依賴反轉(zhuǎn)原則
依賴反轉(zhuǎn)原則表述如下:
>高層不應(yīng)該依賴于低層模塊,二者都應(yīng)該依賴于抽象;
>抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象;
>任何變量都不應(yīng)該持有一個指向具體類的指針或者引用;
>任何類都不應(yīng)該從具體類派生;
>任何方法都不應(yīng)該覆寫它的基類中的已經(jīng)實(shí)現(xiàn)的方法.
5.組合復(fù)用原則
組合/聚合復(fù)用原則優(yōu)先使用組合/聚合而不是繼承.
6.迪米特原則
迪米特法則又稱最少知識原則,它的特點(diǎn)如下:
>只和直接朋友對話
>每個單元對其他單元僅僅具有有限的了解
>每個單元應(yīng)該僅僅與它的朋友對話,不要和陌生人對話
7.接口隔離原則
接口隔離原則是不要強(qiáng)迫客戶依賴于它們不用的方法.
如果強(qiáng)迫客戶程序依賴于那些它們不使用的方法,這將導(dǎo)致所有客戶程序之間的偶合,換句話說,如果一個客戶程序依賴于一個含有它不使用的方法的類,但是其它客戶程序卻要使用這個方法,那么當(dāng)其他客戶要求這個類改變時,就會影響到這個客戶程序,我們希望盡可能地避免這種耦合,因此接口需要進(jìn)行隔離.