開發(fā)7條原則

在軟件開發(fā)中,為了提高軟件系統(tǒng)的可維護(hù)性和可復(fù)用性,增加軟件的可擴(kuò)展性和靈活性,程序員要盡量根據(jù) 7 條原則來開發(fā)程序,從而提高軟件開發(fā)效率、節(jié)約軟件開發(fā)成本和維護(hù)成本

開閉原則:可以通過“抽象約束、封裝變化”來實(shí)現(xiàn)開閉原則,即通過接口或者抽象類為軟件實(shí)體定義一個(gè)相對(duì)穩(wěn)定的抽象層,而將相同的可變因素封裝在相同的具體實(shí)現(xiàn)類中。

里氏替換原則:子類可以擴(kuò)展父類的功能,但不能改變父類原有的功能。也就是說:子類繼承父類時(shí),除添加新的方法完成新增功能外,盡量不要重寫父類的方法。

依賴倒置原則:依賴倒置原則的目的是通過要面向接口的編程來降低類間的耦合性,所以我們?cè)趯?shí)際編程中只要遵循以下4點(diǎn),就能在項(xiàng)目中滿足這個(gè)規(guī)則。

1.每個(gè)類盡量提供接口或抽象類,或者兩者都具備。

2.變量的聲明類型盡量是接口或者是抽象類。

3.任何類都不應(yīng)該從具體類派生。

4.使用繼承時(shí)盡量遵循里氏替換原則。

單一職責(zé)原則:單一職責(zé)原則是最簡(jiǎn)單但又最難運(yùn)用的原則,需要設(shè)計(jì)人員發(fā)現(xiàn)類的不同職責(zé)并將其分離,再封裝到不同的類或模塊中。而發(fā)現(xiàn)類的多重職責(zé)需要設(shè)計(jì)人員具有較強(qiáng)的分析設(shè)計(jì)能力和相關(guān)重構(gòu)經(jīng)驗(yàn)。

接口隔離原則:在具體應(yīng)用接口隔離原則時(shí),應(yīng)該根據(jù)以下幾個(gè)規(guī)則來衡量。

1.接口盡量小,但是要有限度。一個(gè)接口只服務(wù)于一個(gè)子模塊或業(yè)務(wù)邏輯。

2.為依賴接口的類定制服務(wù)。只提供調(diào)用者需要的方法,屏蔽不需要的方法。

3.了解環(huán)境,拒絕盲從。每個(gè)項(xiàng)目或產(chǎn)品都有選定的環(huán)境因素,環(huán)境不同,接口拆分的標(biāo)準(zhǔn)就不同深入了解業(yè)務(wù)邏輯。

4.提高內(nèi)聚,減少對(duì)外交互。使接口用最少的方法去完成最多的事情。

迪米特法則:從迪米特法則的定義和特點(diǎn)可知,它強(qiáng)調(diào)以下兩點(diǎn):

1.從依賴者的角度來說,只依賴應(yīng)該依賴的對(duì)象。

2.從被依賴者的角度說,只暴露應(yīng)該暴露的方法。

所以,在運(yùn)用迪米特法則時(shí)要注意以下 6 點(diǎn)。

1.在類的劃分上,應(yīng)該創(chuàng)建弱耦合的類。類與類之間的耦合越弱,就越有利于實(shí)現(xiàn)可復(fù)用的目標(biāo)。

2.在類的結(jié)構(gòu)設(shè)計(jì)上,盡量降低類成員的訪問權(quán)限。

3.在類的設(shè)計(jì)上,優(yōu)先考慮將一個(gè)類設(shè)置成不變類。

4.在對(duì)其他類的引用上,將引用其他對(duì)象的次數(shù)降到最低。

5.不暴露類的屬性成員,而應(yīng)該提供相應(yīng)的訪問器(set 和 get 方法)。

6.謹(jǐn)慎使用序列化(Serializable)功能。

合成復(fù)用原則:合成復(fù)用原則是通過將已有的對(duì)象納入新對(duì)象中,作為新對(duì)象的成員對(duì)象來實(shí)現(xiàn)的,新對(duì)象可以調(diào)用已有對(duì)象的功能,從而達(dá)到復(fù)用。

這 7 種設(shè)計(jì)原則是軟件設(shè)計(jì)模式必須盡量遵循的原則,各種原則要求的側(cè)重點(diǎn)不同。其中,開閉原則是總綱,它告訴我們要對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉;里氏替換原則告訴我們不要破壞繼承體系;依賴倒置原則告訴我們要面向接口編程;單一職責(zé)原則告訴我們實(shí)現(xiàn)類要職責(zé)單一;接口隔離原則告訴我們?cè)谠O(shè)計(jì)接口的時(shí)候要精簡(jiǎn)單一;迪米特法則告訴我們要降低耦合度;合成復(fù)用原則告訴我們要優(yōu)先使用組合或者聚合關(guān)系復(fù)用,少用繼承關(guān)系復(fù)用。

最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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