版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——六大程序接口設(shè)計(jì)原則六大程序接口設(shè)計(jì)原那么
程序接口設(shè)計(jì)的原那么是什么呢?下面是我給大家供給的六大程序接口設(shè)計(jì)原那么,大家可以參考閱讀,更多詳情請關(guān)注我。
一.單一職責(zé)原那么
SingleResponsibilityPrinciple,簡稱SRP。
定義:Thereshouldneverbemorethanonereasonforaclasstochange.
理應(yīng)有且僅有一個(gè)理由引起類的變更。
職責(zé)的劃分?單一的定義和級(jí)別?
理應(yīng)根據(jù)實(shí)際業(yè)務(wù)處境而定。關(guān)注變化點(diǎn)。
實(shí)際使用時(shí),類很難做到職責(zé)單一,但是接口的職責(zé)理應(yīng)盡量單一。
二.里氏替換原那么
LiskovSubstitutionPrinciple,簡稱LSP。
定義:Functionsthatusepointersorreferencestobaseclassesmustbeabletouseobjectsofderivedclasseswithoutknowingit.
全體引用基類的地方務(wù)必能通明地使用其子類的對(duì)象
里氏替換原那么為良好的繼承定義了一個(gè)模范:
1.子類務(wù)必完全實(shí)現(xiàn)父類的方法
2.子類可以有自己的天性屬性和方法。
3.籠罩或?qū)崿F(xiàn)父類的方法時(shí)輸入?yún)?shù)可以被放大。
4.覆寫或?qū)崿F(xiàn)父類的方法時(shí)輸出結(jié)果可以被縮小。
注:在類中調(diào)用其他類時(shí)務(wù)必要使用父類或接口,假設(shè)不能使用父類或接口,那么說明類的設(shè)計(jì)已經(jīng)違背了LSP原那么。
三.憑借倒置原那么
DependenceInversionPrinciple,簡稱DIP
定義:Highlevelmodulesshouldnotdependuponlowlevelmodules.Bothshoulddependuponabstractions.Abstractionsshouldnotdependupondetails.Detailsshoulddependuponabstractions.
翻譯過來,包含三層含義:
1.高層模塊不理應(yīng)憑借低層模塊,兩者都理應(yīng)憑借其抽象。
2.抽象不理應(yīng)憑借細(xì)節(jié)。
3.細(xì)節(jié)理應(yīng)憑借抽象。
精簡的定義:面向接口編程。
Test-DrivenDevelopment測試驅(qū)動(dòng)開發(fā)是憑借倒置原那么的最好表達(dá)。
測試驅(qū)動(dòng)開發(fā)要求先寫測試類,測試通過才寫實(shí)現(xiàn)類,這就要求你要先想接口定義。
憑借的三種寫法:
1.構(gòu)造函數(shù)傳遞憑借對(duì)象。
2.Setter方法傳遞憑借對(duì)象。
3.接口聲明憑借對(duì)象。
最正確實(shí)踐:
1.每個(gè)類盡量都有接口或抽象類,或者抽象類和接口兩者都具備。
2.變量的外觀類型盡量是接口或抽象類。
3.任何類都不理應(yīng)從概括類派生。
4.盡量不要覆寫基類的`方法。
5.結(jié)合里氏替換原那么使用。
四.接口隔離原那么:
接口這里指用interface關(guān)鍵字定義的接口。
定義:
1.Clientsshouldnotbeforcedtodependuponinterfacesthattheydontuse.客戶端不理應(yīng)憑借它不需要的接口
2.Thedependencyofoneclasstoantheroneshoulddependonthesmallestpossibleinterface.類間的憑借關(guān)系理應(yīng)建立在最小的接口上
概括:建立單一接口,不要建立臃腫浩瀚的接口。
通俗來講:接口盡量細(xì)化,同時(shí)接口中的方法盡量少。
如何細(xì)化?細(xì)化到什么程序?
沒有統(tǒng)一的標(biāo)準(zhǔn),應(yīng)根據(jù)業(yè)務(wù)合理細(xì)分,適合業(yè)務(wù)才是重點(diǎn)。
保證接口的純結(jié)性:
1.接口要盡量小。
2.接口要高內(nèi)聚。
3.定制服務(wù)。
4.接口的設(shè)計(jì)是有限度的。
最正確實(shí)踐:
1.一個(gè)接口只服務(wù)于一個(gè)子模塊或業(yè)務(wù)規(guī)律。
2.通過業(yè)務(wù)規(guī)律壓縮接口中的public方法,接口時(shí)常去回想,盡量讓接口達(dá)成"滿身筋骨肉',而不是"肥嘟嘟'的一大堆方法。
3.已經(jīng)被污染了的接口,盡量去修改,若變更的風(fēng)險(xiǎn)較大,那么采用適配器模式舉行轉(zhuǎn)化處理。
4.了解環(huán)境,拒絕盲從。每個(gè)工程或產(chǎn)品都有特定的環(huán)境因素,不要盲從大師的設(shè)計(jì),要根據(jù)業(yè)務(wù)規(guī)律舉行最好的接口設(shè)計(jì)。
五.迪米特法那么
LawofDemeter,LOD。又稱最少學(xué)識(shí)原那么LeastKnowledgePrinciple,LKP。
通俗來講:一個(gè)類理應(yīng)對(duì)自己需要耦合或調(diào)用的類知道得最少,你被耦合或調(diào)用的類的內(nèi)部是如何繁雜都和我沒有關(guān)系,那是你的事情,我就調(diào)用你供給的public方法,其他一概不關(guān)切。
低耦合要求:
1.只和摯友交流
摯友類:展現(xiàn)在成員變量、方法的輸入輸出參數(shù)中的類。方法體內(nèi)部的類不屬于摯友類。
2.摯友間也是有距離的
迪米特法那么要求類"害羞'一點(diǎn),盡量不要對(duì)外公布太多的public方法和非靜態(tài)的public變量,盡量內(nèi)斂,多使用private、package-private、protected等訪問權(quán)限。
3.是自己的就是自己的
假設(shè)一個(gè)方法放在本類中,既不增加類間關(guān)系,也對(duì)本類不產(chǎn)生負(fù)面影響,就放置在本類中。
4.精心使用Serializable
六.開閉原那么
Softwareentitieslikeclasses,modulesandfunctionsshouldbeopenforextensionbutclosedformodifications.一個(gè)軟件實(shí)體如類、模塊和函數(shù)理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 考試題解析質(zhì)量數(shù)據(jù)分析應(yīng)用案例分析
- 深度解析(2026)《GBT 19275-2003材料在特定微生物作用下潛在生物分解和崩解能力的評(píng)價(jià)》
- 風(fēng)險(xiǎn)管理與內(nèi)部控制考試題庫
- 通信行業(yè)人力資源部工作手冊及面試題集
- 獨(dú)居老人術(shù)后焦慮抑郁干預(yù)方案
- 深度解析(2026)《GBT 18758-2002防偽核技術(shù)產(chǎn)品通 用技術(shù)條件》(2026年)深度解析
- 軟件測試崗位招聘面試技巧全解
- 深度解析(2026)《GBT 18916.27-2017取水定額 第27部分:尿素》
- 圓刻線機(jī)項(xiàng)目可行性分析報(bào)告范文
- 深度解析(2026)《GBT 18769-2003大宗商品電子交易規(guī)范》
- 2024學(xué)年安徽省江南十校高一上學(xué)期12月聯(lián)考物理試題及答案
- 六章 幾何圖形初步 專題一-線段的計(jì)算 教學(xué)設(shè)計(jì) 2024--2025學(xué)年人教版數(shù)學(xué)七年級(jí)上冊
- 2GW高效N型Topcon電池智能制造項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)拿地
- 鄉(xiāng)村振興戰(zhàn)略的理論與實(shí)踐智慧樹知到期末考試答案章節(jié)答案2024年華中師范大學(xué)
- 金屬硬度轉(zhuǎn)換表【HLD,HRC,HRB,HV,HB,HSD】
- 建材有限公司砂石卸車作業(yè)安全風(fēng)險(xiǎn)分級(jí)管控清單
- 中石化華北分公司鉆井定額使用說明
- 礦山壓力與巖層控制智慧樹知到答案章節(jié)測試2023年湖南科技大學(xué)
- 機(jī)加工車間主任年終總結(jié)3篇
- WB/T 1119-2022數(shù)字化倉庫評(píng)估規(guī)范
- GB/T 5125-1985有色金屬?zèng)_杯試驗(yàn)方法
評(píng)論
0/150
提交評(píng)論