freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο缶幊淘瓌tppt課件(參考版)

2025-01-20 19:33本頁面
  

【正文】 。 另外一個(gè)就是只有兩個(gè)類滿足里氏代換原則的時(shí)候,才可能是“ Is- A”關(guān)系。如果按繼承來設(shè)計(jì),那么如果一個(gè)人是雇員的話,就不可能是經(jīng)理,也不可能是學(xué)生,這顯然不合理。這個(gè)的錯(cuò)誤在于把“角色”的等級結(jié)構(gòu)和“人”的等級結(jié)構(gòu)混淆了。 深藍(lán)軟件 ? 我們看一個(gè)例子。 3)從超類繼承而來的實(shí)現(xiàn)是靜態(tài)的,不可能在運(yùn)行時(shí)間內(nèi)發(fā)生改變,沒有足夠的靈活性。由于超類的內(nèi)部細(xì)節(jié)常常是對于子類透明的,所以這種復(fù)用是透明的復(fù)用,又稱“白箱”復(fù)用。 2)修改和擴(kuò)展繼承而來的實(shí)現(xiàn)較為容易 。 ? 缺點(diǎn) : 就是系統(tǒng)中會(huì)有較多的對象需要管理。 6) 這種復(fù)用可以在運(yùn)行時(shí)間內(nèi)動(dòng)態(tài)進(jìn)行,新對象可以動(dòng)態(tài)的引用與成分對象類型相同的對象。 4) 這種復(fù)用所需的依賴較少。 2) 這種復(fù)用是黑箱復(fù)用,因?yàn)槌煞謱ο蟮膬?nèi)部細(xì)節(jié)是新對象所看不見的。當(dāng)然最好的辦法就是考慮使用合成 /聚合原則。換句話說,合成是值的聚合( Aggregation by Value),而一般說的聚合是引用的聚合( Aggregation by Reference)。合成的新的對象完全支配其組成部分,包括它們的創(chuàng)建和湮滅等。在設(shè)計(jì)中 , 聚合不應(yīng)該頻繁出現(xiàn),這樣會(huì)增大設(shè)計(jì)的耦合度。聚合表示整體和部分的關(guān)系,表示“擁有”。而“ HasA”則不同,它表示某一個(gè)角色具有某一項(xiàng)責(zé)任。如果兩個(gè)類是“ Hasa”關(guān)系應(yīng)使用合成、聚合,如果是“ Isa”關(guān)系可使用繼承。而使用繼承時(shí),要嚴(yán)格遵循里氏代換原則。 深藍(lán)軟件 合成 /聚合復(fù)用原則( Composite/Aggregate Reuse Principle或 CARP) ? 定義: 在一個(gè)新的對象里面使用一些已有的對象,使之成為新對象的一部分;新的對象通過向這些對象的委派達(dá)到復(fù)用這些對象的目的。 深藍(lán)軟件 迪米特法則 (Law of Demeter LoD) ? 又叫做最少知識原則 (Least Knowledge Principle,LKP),就是說 ,一個(gè)對象應(yīng)當(dāng)對其他對象有盡可能少的了了解 . 迪米特法則最初是用來作為面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)風(fēng)格的一種法則 ,與1987年秋天由 Ian Holland在 美國 東北大學(xué)為一個(gè)叫做迪米特(Demeter)的項(xiàng)目設(shè)計(jì)提出的 ,因此叫做迪米特法則 [LIEB89][LIEB86].這條法則實(shí)際上是很多著名系統(tǒng) ,比如火星登陸軟件系統(tǒng) ,木星的歐羅巴衛(wèi)星軌道飛船的軟件系統(tǒng)的指導(dǎo)設(shè)計(jì)原則 . ? 沒有任何一個(gè)其他的 OO設(shè)計(jì)原則象迪米特法則這樣有如此之多的表述方式 ,如下幾種 : (1)只與你直接的朋友們通信 (Only talk to your immediate friends) (2)不要跟 陌生人 說話 (Don39。 ? 由此可見,對接口角色的劃分,是從大的類上進(jìn)行劃分的;對角色的接口進(jìn)行的劃分,是對類的接口函數(shù)的劃分。此時(shí)我們需要將對應(yīng)角色中的接口再進(jìn)行劃分,如圖 105所示。對不同的客戶端,同一個(gè)角色提供寬窄不同的接口,也就是定制服務(wù),僅僅提供客戶端需要的行為,客戶端不需要的行為則隱藏起來。 深藍(lán)軟件 ? 2.角色對應(yīng)的接口 ? 指某種語言具體的接口定義,有嚴(yán)格的定義和結(jié)構(gòu)。 ? 例如,我們將電腦的所有功能角色集合為一起,構(gòu)建了一個(gè)接口,如圖 103所示。 深藍(lán)軟件 二、舉例說明: ? 1.接口對應(yīng)的角色 ? 指一個(gè)類型所具有的方法特征的集合,僅僅是一種邏輯上的抽象,接口的劃分就直接帶來類型的劃分。 深藍(lán)軟件 解決辦法一 深藍(lán)軟件 接口隔離 ISP ? 一、 ISP簡介( ISPInterface Segregation Principle): ? 第一:客戶端不應(yīng)該依賴他不需要的接口也就是對接口的細(xì)化 純潔; ? 第二:類直接的依賴應(yīng)該建立在最小的接口上面; ? 第三:建立單一的接口 幾個(gè)模塊就要有及格接口 而不是一個(gè)龐大的臃腫的接口; ? 其他:接口是對外的承諾,承諾的越少,月利于開發(fā);但是開發(fā)的過程中也要注意一個(gè)度的概念,否則接口太多也不利于維護(hù); ? 在我們進(jìn)行設(shè)計(jì)的時(shí)候,一個(gè)重要的工作就是恰當(dāng)?shù)貏澐纸巧徒巧珜?yīng)的接口。 ? 缺點(diǎn):如果用 ToggleSwitch控制一臺電視就很困難了。 ? 優(yōu)點(diǎn): ToggleSwitch依賴于抽象類 Light,具有更高的穩(wěn)定性,而 BulbLight與TubeLight繼承自 Light,可以根據(jù)“開放-封閉”原則進(jìn)行擴(kuò)展。 缺點(diǎn):耦合太緊密, Light發(fā)生變化將影響 ToggleSwitch。 深藍(lán)軟件 依賴倒置 DIP ? 基于這個(gè)原則 : 設(shè)計(jì)類結(jié)構(gòu)的方式應(yīng)該是從上層模塊到底層模塊遵循這樣的結(jié)構(gòu): 上層類 抽象層 底層類 。 ? 也就是說應(yīng)當(dāng)使用接口和抽象類進(jìn)行變量類型聲明、參數(shù)類型聲明、方法返還類型說明,以及數(shù)據(jù)類型的轉(zhuǎn)換等,而不要用具體類進(jìn)行變量的類型聲明、參數(shù)類型聲明、方法返還類型說明,以及數(shù)據(jù)類型的轉(zhuǎn)換等。 ? 2)任何類都不應(yīng)該從具體類派生。 ? 高層模塊包含了一個(gè)應(yīng)該程序中的重要的策略選擇和業(yè)務(wù)模型,正是這些高層模塊才使得其所有的應(yīng)用程序區(qū)別于其他,如果高層依賴于低層 ,那么對低層模塊的改動(dòng)就會(huì)直接影響到高層模塊 ,從而迫使它們依次做出改動(dòng)。 依賴:在程序設(shè)計(jì)中,如果一個(gè)模塊 a使用 /調(diào)用了另一個(gè)模塊 b,我們稱模塊 a依賴模塊 b。 深藍(lán)軟件 依賴倒置 DIP ? 高層模塊不應(yīng)該依賴于低層模塊 ,二者都應(yīng)該依賴于抽象。 違反里氏代換原則意味著違反了開閉原則,反之未必。 實(shí)現(xiàn)開閉原則的關(guān)鍵步驟是抽象化,基類與子類之間的繼承關(guān)系就是一種抽象化的體現(xiàn)。 ()。 } if (animal instanceof Dog ){ Dog dog = (Dog)animal。 ()。 } } } 深藍(lán)軟件 ? 測試類: TestAnimal class TestAnimal { public: void TestLSP(Animalamp。 } } } 狗類 Dog: public class Dog :public Animal { Dog(String name) : Animal (name) {} void Bark() { try{ coutBark~~
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1