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

正文內(nèi)容

軟件體系結(jié)構(gòu)與設(shè)計(jì)模式概述-資料下載頁(yè)

2025-02-26 17:05本頁(yè)面
  

【正文】 on的 Instance() 存取這唯一的實(shí)例。 外觀(guān) (1) 目的:給子系統(tǒng)中的一組接口提供一套統(tǒng)一的高層界面,使得子系統(tǒng)更容易使用。 (2) 思路:將系統(tǒng)劃分為若干子系統(tǒng),雖然可以降低整體的復(fù)雜性,但還需設(shè)法降低子系統(tǒng)之間的通信和相互的依賴(lài)性。一種方法就是引進(jìn)一個(gè)外觀(guān)( facade)對(duì)象,為子系統(tǒng)內(nèi)各種設(shè)施提供一個(gè)簡(jiǎn)單的單一界面。 外觀(guān) (3) 結(jié)構(gòu):外觀(guān)模式的結(jié)構(gòu)如圖所示。 外觀(guān) (4)參與者職責(zé) a)外觀(guān)( Fa231。ade):知道子系統(tǒng)中哪個(gè)類(lèi)負(fù)責(zé)處理哪種信息;并負(fù)責(zé)把外界輸入的信息轉(zhuǎn)交給適當(dāng)?shù)淖酉到y(tǒng)對(duì)象。 b)子系統(tǒng)中的類(lèi)( subsystem classes):實(shí)現(xiàn)子系統(tǒng)的功能;處理 Facade對(duì)象分派的工作;如果不受 Facade的控制,則也不會(huì)有返回 Facade的引用存在。 (5)協(xié)作:使用 Facade的客戶(hù)不用直接訪(fǎng)問(wèn)子系統(tǒng)對(duì)象。外界想與子系統(tǒng)交互時(shí),把信息傳送給 Facade, Facade再把這些信息轉(zhuǎn)交給適當(dāng)?shù)淖酉到y(tǒng)對(duì)象。雖然實(shí)際處理工作是子系統(tǒng)對(duì)象在做,但 Facade會(huì)居中做接口轉(zhuǎn)換工作。 適配器 (1)目的:適配器模式將一個(gè)類(lèi)的接口轉(zhuǎn)換為客戶(hù)期望的另一種接口,使得原本不匹配的接口而無(wú)法合作的類(lèi)可以一起工作。 (2)思路:有時(shí)要將兩個(gè)沒(méi)有關(guān)系的類(lèi)組合在一起使用,一種解決方案是修改各自類(lèi)的接口,另一種辦法是使用Adapter模式,在兩種接口之間創(chuàng)建一個(gè)混合接口。 例如,設(shè)有一個(gè)圖形編輯器,可畫(huà)直線(xiàn)、多邊形、文本等。它的接口定義成抽象類(lèi) Shape,它的子類(lèi)負(fù)責(zé)畫(huà)各種圖形。此外,還有一個(gè)外購(gòu)的 GUI軟件包 TextView,用于顯示,但它沒(méi)有 Shape功能。 適配器 如何讓 TextView的接口轉(zhuǎn)換成為 Shape的接口,有兩種方法: ? 讓 TextShape同時(shí)繼承 Shape的接口和 TextView的服務(wù)(多重繼承); ? 在 TextShape中建立 TextView的實(shí)例,再通過(guò) TextView給出TextShape的接口。 前者是適配器的類(lèi)模式,后者是對(duì)象模式。下圖就是適配器的對(duì)象模式。 適配器 (3) 結(jié)構(gòu):適配器模式有類(lèi)適配器模式和對(duì)象適配器模式。類(lèi)適配器可以通過(guò)多繼承方式實(shí)現(xiàn)不同接口之間的相容和轉(zhuǎn)換,如圖所示。 適配器 ? 而一個(gè)對(duì)象適配器則依賴(lài)對(duì)象組合的技術(shù)實(shí)現(xiàn)接口的相容和轉(zhuǎn)換,如圖所示。 適配器 (4) 參與者職責(zé) a) 目標(biāo)( Target):定義客戶(hù)使用的與應(yīng)用領(lǐng)域相關(guān)的接口。 b) 客戶(hù)( Client):與具有 Target接口的對(duì)象合作。 c) 被匹配者( Adaptee):需要被轉(zhuǎn)換匹配的一個(gè)已存在接口。 d) 適配器( Adapter):將 Adaptee的接口與Target接口匹配。 適配器 (5) 協(xié)作:客戶(hù)調(diào)用 Adapter對(duì)象的操作,然后 Adapter的操作又調(diào)用 Adaptee對(duì)象中負(fù)責(zé)處理相應(yīng)請(qǐng)求的操作。 責(zé)任鏈 (1) 目的:通過(guò)一條隱式的對(duì)象消息鏈傳遞處理請(qǐng)求。該請(qǐng)求沿著這條鏈傳遞,直到有一個(gè)對(duì)象處理它為止。其核心是避免將請(qǐng)求的發(fā)送者直接耦合到它的接受者。 (2) 思路:以 GUI系統(tǒng)的聯(lián)機(jī)幫助系統(tǒng)為例。用戶(hù)可以在軟件中任一位置按下 help鍵,軟件就可以根據(jù)該信息和當(dāng)前上下文環(huán)境彈出適當(dāng)?shù)恼f(shuō)明。 如果用戶(hù)在 PrintDialog對(duì)話(huà)框里“打印”按鈕上按了幫助鍵,幫助信息的順序圖如圖所示。 責(zé)任鏈 ? 聯(lián)機(jī)幫助系統(tǒng)定義了一個(gè)抽象類(lèi) HelpHandler和抽象操作HandleHelp(),所有想處理信息的類(lèi)可以繼承該類(lèi)。HelpHandler的 HandleHelp() 操作的內(nèi)定做法是把信息傳遞給后繼者去處理,由各個(gè)子類(lèi)分別來(lái)實(shí)現(xiàn)具體的打印功能。如圖所示。 責(zé)任鏈 (3) 結(jié)構(gòu):責(zé)任鏈模式的結(jié)構(gòu)如圖所示 。 責(zé)任鏈 ? 典型的對(duì)象間的結(jié)構(gòu)如圖所示。 責(zé)任鏈 (4) 參與者職責(zé) a) 處理者( Handler):定義處理請(qǐng)求的接口;實(shí)現(xiàn)對(duì)后繼者的鏈接(可選)。 b) 具體處理者( ConcreteHandler):處理它所負(fù)責(zé)的請(qǐng)求;可訪(fǎng)問(wèn)它的后繼;如果它能夠處理請(qǐng)求,就處理該請(qǐng)求,否則將請(qǐng)求傳送給后繼者。 c) 客戶(hù)( Client):將處理請(qǐng)求提交給職責(zé)鏈中的ConcreteHandler對(duì)象。 (5) 協(xié)作:當(dāng) Client發(fā)出請(qǐng)求之后,請(qǐng)求會(huì)在責(zé)任鏈中傳遞,直到有一個(gè) ConcreteHandler對(duì)象能處理為止。 中介者 (1) 目的:用一個(gè)中介對(duì)象來(lái)封裝一系列復(fù)雜對(duì)象的交互情景。中介者通過(guò)阻止各個(gè)對(duì)象顯式地相互引用來(lái)降低它們之間的耦合,使得人們可以獨(dú)立地改變它們之間的交互。 (2) 思路:以 GUI系統(tǒng)的對(duì)話(huà)框?yàn)槔?,?duì)話(huà)框中會(huì)布置許多窗口組件,如按鈕、菜單、文字輸入欄等。對(duì)話(huà)框中各窗口組件之間往往相互牽連。 為此,可以將這些窗口組件的集體行為封裝成一個(gè)中介者( mediator)對(duì)象。中介者負(fù)責(zé)居中指揮協(xié)調(diào)一組對(duì)象之間的交互行為,避免互相直接引用。這些對(duì)象只認(rèn)得中介者,因而可降低交互行為的數(shù)目。 中介者 ? 例如,可用 FontDialogDirector當(dāng)作對(duì)話(huà)框內(nèi)各窗口組件之間的中介者。 FontDialogDirector對(duì)象認(rèn)得所有組件,協(xié)調(diào)彼此之間的交互,如同一個(gè)通信樞紐,如圖所示。 中介者 ? 描述 mediator作用的順序圖 。 中介者 ? 下圖顯示了加入 FontDialogDirector后的類(lèi)結(jié)構(gòu)。 中介者 (3) 結(jié)構(gòu):圖 (a)給出了中介者的類(lèi)結(jié)構(gòu),圖 (b)給出了典型的對(duì)象結(jié)構(gòu)。 (a) (b) 中介者 (4) 參與者職責(zé) a) 中介者( Mediator):定義與各個(gè)同事( Colleague)對(duì)象通信的接口。 b) 具體中介者( ConcreteMediator):協(xié)調(diào)各個(gè)同事對(duì)象,實(shí)現(xiàn)協(xié)作行為;了解并維護(hù)各個(gè)同事對(duì)象。 c) 同事類(lèi)( Colleague classes):這些同事類(lèi)的對(duì)象都了解中介者;一個(gè)同事對(duì)象與另一個(gè)同事對(duì)象之間的通信都需要通過(guò)中介者來(lái)間接實(shí)現(xiàn)。 (5) 協(xié)作:同事向中介者對(duì)象發(fā)送或接收請(qǐng)求,中介者則將請(qǐng)求傳送給適當(dāng)?shù)耐聦?duì)象(一個(gè)或多個(gè)),協(xié)調(diào)整體行為。 觀(guān)察者 (1)目的:定義對(duì)象間的一種一對(duì)多的依賴(lài)關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴(lài)于它的對(duì)象都得到通知,并被自動(dòng)更新。 (2)思路:例如,許多 GUI軟件包都將數(shù)據(jù)顯示部分與應(yīng)用程序底層的數(shù)據(jù)表示分開(kāi),以利于分別復(fù)用。但這些類(lèi)也能合作,如圖所示的計(jì)算表和直方圖都是針對(duì)同一數(shù)據(jù)對(duì)象的兩種不同表示方式。 觀(guān)察者 (3) 結(jié)構(gòu): Observer模式的結(jié)構(gòu)如圖所示。 觀(guān)察者 (4) 參與者職責(zé) a) 主題( Subject):認(rèn)得它的觀(guān)察者。任意數(shù)目的觀(guān)察者對(duì)象均可訂閱一個(gè)主題。另外,提供一個(gè)連接觀(guān)察者對(duì)象和解除連接的接口。 b) 觀(guān)察者( Observer):定義了一個(gè)自我更新的接口。一旦發(fā)現(xiàn)主題有變時(shí)借助接口通知自己隨之改變。 c) 具體主題( ConcreteSubject):存儲(chǔ)具體觀(guān)察者對(duì)象關(guān)心的狀態(tài);當(dāng)狀態(tài)改變時(shí)向它的觀(guān)察者發(fā)送通知。 d) 具體觀(guān)察者( ConcreteObserver):維持一個(gè)對(duì)具體主題對(duì)象的引用;存儲(chǔ)要與主題一致的狀態(tài);實(shí)現(xiàn)觀(guān)察者的自我更新接口,確保自己的狀態(tài)與主題的狀態(tài)一致。 觀(guān)察者 (5) 協(xié)作:當(dāng)具體主題發(fā)生會(huì)導(dǎo)致觀(guān)察者的狀態(tài)不一致的情況時(shí),就會(huì)主動(dòng)通知所有該通知的觀(guān)察者。當(dāng)具體觀(guān)察者收到通知后,向主題詢(xún)問(wèn),根據(jù)所得信息使自己的狀態(tài)與主題的狀態(tài)保持一致。下圖給出了一個(gè)主題和兩個(gè)觀(guān)察者對(duì)象之間的交互情況。 演講完畢,謝謝觀(guān)看!
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1