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

正文內(nèi)容

面向?qū)ο缶幊淘瓌tppt課件-資料下載頁

2025-01-17 19:33本頁面
  

【正文】 表一個角色,每個角色都有它特定的一個接口,這里的這個原則可以叫做角色隔離原則。 ? 例如,我們將電腦的所有功能角色集合為一起,構(gòu)建了一個接口,如圖 103所示。 深藍軟件 ? 此時,我的電腦和你的電腦要實現(xiàn)該接口,就必須實現(xiàn)所有的接口函數(shù),顯然接口混亂,并不能夠滿足實際的需求: ? 我的電腦可能是用來工作和學(xué)習(xí)的,你的電腦可能是用來看電影、上網(wǎng)和打游戲等娛樂活動的,那我們就可以將電腦的角色劃分為兩類,如圖 104所示。 深藍軟件 ? 2.角色對應(yīng)的接口 ? 指某種語言具體的接口定義,有嚴(yán)格的定義和結(jié)構(gòu)。比如 Java語言里面的 Interface結(jié)構(gòu)。對不同的客戶端,同一個角色提供寬窄不同的接口,也就是定制服務(wù),僅僅提供客戶端需要的行為,客戶端不需要的行為則隱藏起來。 ? 對于圖 104中的接口定義,如果我的電腦除了工作和學(xué)習(xí)之外,還想上網(wǎng),那就沒辦法了,必須實現(xiàn)娛樂電腦的接口,這樣就必須實現(xiàn)它的所有接口函數(shù)了。此時我們需要將對應(yīng)角色中的接口再進行劃分,如圖 105所示。 深藍軟件 ? 這樣,經(jīng)過以上的劃分,如果我的電腦想增加某一項功能,只需要繼承不同的接口類即可。 ? 由此可見,對接口角色的劃分,是從大的類上進行劃分的;對角色的接口進行的劃分,是對類的接口函數(shù)的劃分。它們兩者由粗到細,實現(xiàn)了接口的完全分離。 深藍軟件 迪米特法則 (Law of Demeter LoD) ? 又叫做最少知識原則 (Least Knowledge Principle,LKP),就是說 ,一個對象應(yīng)當(dāng)對其他對象有盡可能少的了了解 . 迪米特法則最初是用來作為面向?qū)ο蟮南到y(tǒng)設(shè)計風(fēng)格的一種法則 ,與1987年秋天由 Ian Holland在 美國 東北大學(xué)為一個叫做迪米特(Demeter)的項目設(shè)計提出的 ,因此叫做迪米特法則 [LIEB89][LIEB86].這條法則實際上是很多著名系統(tǒng) ,比如火星登陸軟件系統(tǒng) ,木星的歐羅巴衛(wèi)星軌道飛船的軟件系統(tǒng)的指導(dǎo)設(shè)計原則 . ? 沒有任何一個其他的 OO設(shè)計原則象迪米特法則這樣有如此之多的表述方式 ,如下幾種 : (1)只與你直接的朋友們通信 (Only talk to your immediate friends) (2)不要跟 陌生人 說話 (Don39。t talk to strangers) (3)每一個軟件單位對其他的單位都只有最少的知識 ,而且局限于那些本單位密切相關(guān)的軟件單位 . 就是說 ,如果兩個類不必彼此直接通信 ,那么這兩個類就不應(yīng)當(dāng)發(fā)生直接的相互作用 ,如果其中的一個類需要調(diào)用另一個類的某一個方法的話 ,可以通過第三者轉(zhuǎn)發(fā)這個調(diào)用。 深藍軟件 合成 /聚合復(fù)用原則( Composite/Aggregate Reuse Principle或 CARP) ? 定義: 在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分;新的對象通過向這些對象的委派達到復(fù)用這些對象的目的。應(yīng)首先使用合成 /聚合,合成 /聚合則使系統(tǒng)靈活,其次才考慮繼承,達到復(fù)用的目的。而使用繼承時,要嚴(yán)格遵循里氏代換原則。有效地使用繼承會有助于對問題的理解,降低復(fù)雜度,而濫用繼承會增加系統(tǒng)構(gòu)建、維護時的難度及系統(tǒng)的復(fù)雜度。如果兩個類是“ Hasa”關(guān)系應(yīng)使用合成、聚合,如果是“ Isa”關(guān)系可使用繼承。“ IsA”是嚴(yán)格的分類學(xué)意義上定義,意思是一個類是另一個類的“一種”。而“ HasA”則不同,它表示某一個角色具有某一項責(zé)任。 深藍軟件 ? 什么是合成?什么是聚合? 合成( Composition)和聚合( Aggregation)都是關(guān)聯(lián)( Association)的特殊種類。聚合表示整體和部分的關(guān)系,表示“擁有”。如奔馳 S360汽車,對奔馳 S360引擎、奔馳 S360輪胎的關(guān)系是聚合關(guān)系,離開了奔馳 S360汽車,引擎、輪胎就失去了存在的意義。在設(shè)計中 , 聚合不應(yīng)該頻繁出現(xiàn),這樣會增大設(shè)計的耦合度。合成則是一種更強的“擁有”,部分和整體的生命周期一樣。合成的新的對象完全支配其組成部分,包括它們的創(chuàng)建和湮滅等。一個合成關(guān)系的成分對象是不能與另一個合成關(guān)系共享的。換句話說,合成是值的聚合( Aggregation by Value),而一般說的聚合是引用的聚合( Aggregation by Reference)。明白了合成和聚合關(guān)系,再來理解合成 /聚合原則應(yīng)該就清楚了,要避免在系統(tǒng)設(shè)計中出現(xiàn),一個類的繼承層次超過 3層,則需考慮重構(gòu)代碼,或者重新設(shè)計結(jié)構(gòu)。當(dāng)然最好的辦法就是考慮使用合成 /聚合原則。 深藍軟件 ? 通過合成 /聚合的優(yōu)缺點 ? 優(yōu)點 : 1) 新對象存取成分對象的唯一方法是通過成分對象的接口。 2) 這種復(fù)用是黑箱復(fù)用,因為成分對象的內(nèi)部細節(jié)是新對象所看不見的。 3) 這種復(fù)用支持包裝。 4) 這種復(fù)用所需的依賴較少。 5) 每一個新的類可以將焦點集中在一個任務(wù)上。 6) 這種復(fù)用可以在運行時間內(nèi)動態(tài)進行,新對象可以動態(tài)的引用與成分對象類型相同的對象。 7) 作為復(fù)用手段可以應(yīng)用到幾乎任何環(huán)境中去。 ? 缺點 : 就是系統(tǒng)中會有較多的對象需要管理。 深藍軟件 ? 通過繼承來進行復(fù)用的優(yōu)缺點 ? 優(yōu)點 : 1)新的實現(xiàn)較為容易,因為超類的大部分功能可以通過繼承的關(guān)系自動進入子類。 2)修改和擴展繼承而來的實現(xiàn)較為容易 。 ? 缺點: 1)繼承復(fù)用破壞包裝,因為繼承將超類的實現(xiàn)細節(jié)暴露給子類。由于超類的內(nèi)部細節(jié)常常是對于子類透明的,所以這種復(fù)用是透明的復(fù)用,又稱“白箱”復(fù)用。 2)如果超類發(fā)生改變,那么子類的實現(xiàn)也不得不發(fā)生改變。 3)從超類繼承而來的實現(xiàn)是靜態(tài)的,不可能在運行時間內(nèi)發(fā)生改變,沒有足夠的靈活性。 4)繼承只能在有限的環(huán)境中使用。 深藍軟件 ? 我們看一個例子。如果我們把“人”當(dāng)成一個類,然后把“雇員”,“經(jīng)理”,“學(xué)生”當(dāng)成是“人”的子類。這個的錯誤在于把“角色”的等級結(jié)構(gòu)和“人”的等級結(jié)構(gòu)混淆了?!敖?jīng)理”,“雇員”,“學(xué)生”是一個人的角色,一個人可以同時擁有上述角色。如果按繼承來設(shè)計,那么如果一個人是雇員的話,就不可能是經(jīng)理,也不可能是學(xué)生,這顯然不合理。正確的設(shè)計是有個抽象類“角色”,“人”可以擁有多個“角色”(聚合),“雇員”,“經(jīng)理”,“學(xué)生”是“角色”的子類。 另外一個就是只有兩個類滿足里氏代換原則的時候,才可能是“ Is- A”關(guān)系。也就是說,如果兩個類是“ HasA”關(guān)系,但是設(shè)計成了繼承,那么肯定違反里氏代換原則。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1