




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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換句話說:軟件的行為可以被擴展;但是代碼不能被修改!你認為可能嗎?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是目標,DIP是實現(xiàn)目標的方法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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 20582:2025 EN Software and systems engineering - Capabilities of build and deployment tools
- 【正版授權(quán)】 IEC 60530:1975/AMD1:1992 EN-D Amendment 1 - Methods for measuring the performance of electric kettles and jugs for household and similar use
- 【正版授權(quán)】 IEC 60155:1993/AMD1:1995 EN-D Amendment 1 - Glow-starters for fluorescent lamps
- 商業(yè)保險產(chǎn)品銷售與理賠協(xié)議
- 當(dāng)代國際服務(wù)貿(mào)易的發(fā)展趨勢及我國的對策
- 百年孤獨:小說選段賞析教案
- 會計準則制定的動因與前提
- 音程考試試題及答案解析
- 疫情韓國考試試題及答案
- 醫(yī)院在線考試試題及答案
- 口腔實習(xí)生崗前培訓(xùn)課件
- 自動生成的文檔-202504081202-70
- 鋼結(jié)構(gòu)檢測管理制度
- T/SHPTA 030-2022民用航空器用聚氟乙烯基阻燃耐候復(fù)合裝飾膜
- 吊車吊籃高空作業(yè)施工方案
- 工資調(diào)整變更協(xié)議書
- 基于YOLOv5的目標檢測算法優(yōu)化及其在工業(yè)場景的應(yīng)用研究
- 地鐵保安服務(wù)應(yīng)急預(yù)案
- 早產(chǎn)兒腸內(nèi)營養(yǎng)管理專家共識2024年解讀
- 商務(wù)談判實務(wù)-形考任務(wù)二-國開(ZJ)-參考資料
- 2025年度專業(yè)技術(shù)人員繼續(xù)教育公需科目考試題(附答案)
評論
0/150
提交評論