




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、2022-4-10Inspur group面向?qū)ο蟮脑O(shè)計原則張英鋒22022-4-10Inspur group在軟件開發(fā)中唯一不變的就是變化任何系統(tǒng)在其生命周期中都會發(fā)生變化。如果我們希望開發(fā)出的系統(tǒng)不會在第一版本后就被拋棄,那么我們就必須牢牢記住這一點。 Ivar Jacobson32022-4-10Inspur group軟件領(lǐng)域模塊設(shè)計指導(dǎo)原則High cohesion,Low coupling高內(nèi)聚,松耦合但是如何實現(xiàn)?42022-4-10Inspur groupOO原則原則OO設(shè)計的原則:SRP, Single Responsibility PrincipleOCP, Open-Cl
2、osed PrincipleLSP, Liskov Substitution PrincipleDIP, Dependency Inversion PrincipleISP, Interface Segregation PrincipleCARP, Composition/Aggregation PrincipleLoD, Law of Demeter52022-4-10Inspur group單一職責(zé)原則(高內(nèi)聚)單一職責(zé)原則(高內(nèi)聚)Single Responsibility Principle, SRPA class should have only one reason to chan
3、ge.對一個類而言,應(yīng)該僅有一個引起它變化的原因。即一個類僅僅需要一個職責(zé)。如何理解?62022-4-10Inspur group需求的變化就是功能的變化;反映到類上就是類職責(zé)的變化;如果一個類承擔(dān)的職責(zé)過多,那么這些職責(zé)就會相互依賴,一個職責(zé)的變化可能會影響另一個職責(zé)的履行;其實OOD的實質(zhì),就是合理地進行類的職責(zé)分配。72022-4-10Inspur group開閉原則開閉原則Open-Closed Principle, OCPSoftware entities should be open for extension, but closed for modification.OO設(shè)計的第
4、一原則82022-4-10Inspur group換句話說:軟件的行為可以被擴展;但是代碼不能被修改!你認(rèn)為可能嗎?92022-4-10Inspur group里氏代換原則里氏代換原則Liskov Substitution Principle, LSP If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behaviour of P is unchanged when o1 is substituted fo
5、r o2 then S is a subtype of T. Barbara Liskov若對于每一個類型S的對象o1,都存在一個類型T的對象o2,使得在所有針對T編寫的程序P中,用o1替換o2后,程序P的行為功能不變,則S是T的子類型。102022-4-10Inspur group任何基類出現(xiàn)的地方,子類一定可以出現(xiàn)由父類承擔(dān)的職責(zé),子類一定可以承擔(dān),反之不成立112022-4-10Inspur group依賴倒轉(zhuǎn)原則依賴倒轉(zhuǎn)原則Dependency Inversion Principle, DIPa.High-level modules should not depend on low-l
6、evel modules.Both should depend on abstractions.b.Abstractions should not depend on details.Detils should depend on abstractions.要依賴于抽象,不要依賴于具體122022-4-10Inspur groupProgram to an interface, not an implementation.針對接口編程,而不要面向?qū)崿F(xiàn)編程!注意:這里的接口不是Java里的接口類DIP是框架Framework設(shè)計的核心原則OCP是目標(biāo),DIP是實現(xiàn)目標(biāo)的方法132022-4-10
7、Inspur group依賴即耦合零耦合具體耦合抽象耦合142022-4-10Inspur group謔稱“好萊塢原則” Hollywood PrincipleDont call us, well call you.152022-4-10Inspur group控制反轉(zhuǎn)Inversion of Control, IOCDependency InjectionMartin Flower162022-4-10Inspur group接口隔離原則接口隔離原則ISPInterface Segregation Principle,ISP不應(yīng)該強迫客戶依賴于它們不用的方法。接口屬于客戶,不屬于它所在的類層
8、次結(jié)構(gòu)。接口內(nèi)的方法應(yīng)該盡可能少大的接口可以分割成小接口172022-4-10Inspur group組合組合/聚合復(fù)用原則聚合復(fù)用原則CARPComposition/Aggregation Principle, CARP在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分;新的對象通過向這些對象的委派達到復(fù)用已有功能的目的。另一種說法:Favor Composition over Inheritance盡量使用類的組合復(fù)用,盡量不要使用繼承復(fù)用。182022-4-10Inspur group組合和聚合的區(qū)別組合關(guān)系緊密性強于聚合關(guān)系組合意味著生命周期相同,聚合不一定192022-4-
9、10Inspur group迪米特法則迪米特法則LoD Law of Demeter, LoD又叫做最少知識原則(Least Knowledge Principle,LKP)一個對象應(yīng)當(dāng)對其他對象有盡可能少的了解。迪米特法則要求任何一個軟件實體,除非絕對需要,不然不要與外界通信。即使必須進行通信,也應(yīng)當(dāng)盡量限制通信的廣度和深度。202022-4-10Inspur group多態(tài)的原理與實現(xiàn)多態(tài)的原理與實現(xiàn)多態(tài)與繼承多態(tài)的實現(xiàn)212022-4-10Inspur group多態(tài)是面向?qū)ο笾凶钪匾募夹g(shù)是眾多面向?qū)ο蟮脑瓌t實現(xiàn)的核心;只有理解了多態(tài),面向?qū)ο蟮膶W(xué)習(xí)才能算是入門。222022-4-10Inspur group繼承和多態(tài)繼承層次中類之間的關(guān)系靜態(tài)的編譯時刻就確定的繼承層次中對象之間的關(guān)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024撫順礦務(wù)局職工工學(xué)院輔導(dǎo)員招聘筆試真題
- 2025年微機勵磁屏項目合作計劃書
- 體育賽事數(shù)據(jù)分析師筆試試題及答案
- 2025年高純四氧化三錳項目建議書
- 2025年核電站用電纜項目建議書
- 2024年涼山州會理市定向考聘社區(qū)工作者真題
- 消費贈與合同
- 小學(xué)科學(xué)教科版五年級上冊全冊易錯知識點專項練習(xí)(判斷選擇分單元編排附參考答案和點撥)
- 頂崗實習(xí)報告范文3000字
- 享稅收優(yōu)惠-8個備案管理稅務(wù)風(fēng)險需防范
- 10kV高壓配電室交接性試驗報告
- 鄭榮祿博士談保險熱點話題
- 多維閱讀第4級Animal Fathers 動物爸爸 課件
- 藥品不良反應(yīng)報告事件表
- TJA圍手術(shù)期血液管理課件
- DB31T 405-2021 集中空調(diào)通風(fēng)系統(tǒng)衛(wèi)生管理規(guī)范
- 新教材波音手冊查詢(高級)課件
- DB4404-T 29-2022 球墨鑄鐵排水井蓋管理規(guī)范
- 151 醫(yī)用一次性防護服質(zhì)量檢驗原始記錄(客戶需要根據(jù)實際修改)
- 現(xiàn)代漢語常用字表(拼音版本)
- 紅星水庫除險加固工程初步設(shè)計報告
評論
0/150
提交評論