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

正文內(nèi)容

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

2025-01-17 19:33本頁面
  

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