設(shè)計(jì)模式第五次課_第1頁(yè)
設(shè)計(jì)模式第五次課_第2頁(yè)
設(shè)計(jì)模式第五次課_第3頁(yè)
設(shè)計(jì)模式第五次課_第4頁(yè)
設(shè)計(jì)模式第五次課_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、外觀模式、迭代器模式與中介 者模式 外觀模式 名稱:外觀模式 問題: 方案: 子系統(tǒng),外觀 效果:為系統(tǒng)中的一組接口 外觀模式 外部與一個(gè)子系統(tǒng)的通信必須通過一個(gè)統(tǒng) 一的門面對(duì)象進(jìn)行。外觀模式提供一個(gè)高 層次的接口,使得子系統(tǒng)更易于使用。每 一個(gè)子系統(tǒng)只有一個(gè)外觀類,而且此外觀 類只有一個(gè)實(shí)例,也就是說它是一個(gè)單例 模式。但整個(gè)系統(tǒng)可以有多個(gè)外觀類。 外觀模式 我有一個(gè)專業(yè)的Nikon相機(jī),可以自己手動(dòng) 調(diào)光圈、快門,這樣照出來(lái)的照片才專業(yè), 但我不懂這些。幸好相機(jī)有Facade設(shè)計(jì)模 式,把相機(jī)調(diào)整到自動(dòng)檔,只要對(duì)準(zhǔn)目標(biāo) 按快門就行了,一切由相機(jī)自動(dòng)調(diào)整,這 樣我就可以用這個(gè)相機(jī)拍照片了。

2、外觀模式案例 書上的郵寄包裹例子。 泡茶的過程中,需要作如下的工作:燒開水,準(zhǔn)備茶葉, 把茶葉放在被子里,把燒開的水放到茶杯中,只有經(jīng)過這 些過程之后才能泡出好的茶葉來(lái)。這是一個(gè)常用的步驟, 80%的泡茶步驟都是這個(gè)樣子的,可以把這些動(dòng)作串聯(lián)起 來(lái),形成一個(gè)整體的步驟,就是MakeACuppa(),這樣在 調(diào)用步方法時(shí)也比較方便。這便是外觀模式,里面的細(xì)節(jié) 被屏蔽掉了。當(dāng)然如果想更詳細(xì)的控制每個(gè)步驟地過程, 也允許進(jìn)行相應(yīng)的控制,但是必須自己創(chuàng)建類。 類圖 代碼 旅游例子 泡茶例子(見txt文檔) 外觀模式優(yōu)點(diǎn) 對(duì)客戶屏蔽子系統(tǒng)組件,因而減少了客戶 處理的對(duì)象的樹木并使得子系統(tǒng)使用起來(lái) 更加方

3、便。 實(shí)現(xiàn)了自系統(tǒng)與客戶之間的松散耦合關(guān)系 子系統(tǒng)的修改不受限制 適用場(chǎng)景 一個(gè)復(fù)雜的子系統(tǒng),需要為用戶提供簡(jiǎn)單的交互 操作。 不希望客戶代碼和子系統(tǒng)有耦合,提高子系統(tǒng)的 獨(dú)立性和可維護(hù)性 整個(gè)系統(tǒng)需要構(gòu)建一個(gè)層次結(jié)構(gòu)的子系統(tǒng),不希 望子系統(tǒng)相互直接的交互時(shí)。 迭代器模式 名稱:迭代器模式 問題: 方案: 集合,具體集合,迭代器,具體迭代器 效果:提供一種方法順序訪問一個(gè)聚合對(duì) 象中的各個(gè)元素,而又不需要暴露該對(duì)象 的內(nèi)部表示。 迭代子模式可以順序訪問一個(gè)聚集中的元 素而不必暴露聚集的內(nèi)部表象。多個(gè)對(duì)象 聚在一起形成的總體稱之為聚集,聚集對(duì) 象是能夠包容一組對(duì)象的容器對(duì)象。迭代 子模式將迭代邏

4、輯封裝到一個(gè)獨(dú)立的子對(duì) 象中,從而與聚集本身隔開。迭代子模式 簡(jiǎn)化了聚集的界面。每一個(gè)聚集對(duì)象都可 以有一個(gè)或一個(gè)以上的迭代子對(duì)象,每一 個(gè)迭代子的迭代狀態(tài)可以是彼此獨(dú)立的。 迭代算法可以獨(dú)立于聚集角色變化。 我愛上了Mary,不顧一切的向她求婚。 Mary:“想要我跟你結(jié)婚,得答應(yīng)我的條件” 我:“什么條件我都答應(yīng),你說吧” Mary:“我看上了那個(gè)一克拉的鉆石” 我:“我買,我買,還有嗎?” Mary:“我看上了湖邊的那棟別墅” 我:“我買,我買,還有嗎?” Mary:“我看上那輛法拉利跑車” 我腦袋嗡的一聲,坐在椅子上,一咬牙:“我買,我買,還有嗎?” 迭代器模式案例 電視遙控器 山頂種

5、樹噴農(nóng)藥 類圖 代碼 見附件txt 迭代器模式優(yōu)點(diǎn) 用戶使用迭代器訪問集合內(nèi)的對(duì)象,不需 要知道集合內(nèi)的對(duì)象如何表示及存儲(chǔ)。 可以使用多個(gè)迭代器遍歷一個(gè)集合。 適用場(chǎng)景 讓用戶訪問一個(gè)集合中的對(duì)象而不希望暴 露對(duì)象在集合中的存儲(chǔ)結(jié)構(gòu)。 希望對(duì)遍歷不同的集合提供一個(gè)統(tǒng)一的接 口。 中介者模式 名稱:中介者模式 問題:用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì) 象交互 方案: 中介者,具體中介者,同事接口,具體同事 效果:中介者使各對(duì)象不需要顯式地相互 引用,使其耦合松散,并可以獨(dú)立第改變 他們之間的交互。 調(diào)停者模式包裝了一系列對(duì)象相互作用的方式, 使得這些對(duì)象不必相互明顯作用。從而使他們可 以松散偶合。當(dāng)某些對(duì)象之間的作用發(fā)生改變時(shí), 不會(huì)立即影響其他的一些對(duì)象之間的作用。保證 這些作用可以彼此獨(dú)立的變化。調(diào)停者模式將多 對(duì)多的相互作用轉(zhuǎn)化為一對(duì)多的相互作用。 調(diào)停者模式將對(duì)象的行為和協(xié)作抽象化,把對(duì)象 在小尺度的行為上與其他對(duì)象的相互作用分開處 理。 四個(gè)MM打麻將,相互之間誰(shuí)應(yīng)該給誰(shuí)多少 錢算不清楚了,幸虧當(dāng)時(shí)我在旁邊,按照 各自的籌碼數(shù)算錢,賺了錢的從我這里拿, 賠了錢的也付給我,一切就OK啦,俺得到 了四個(gè)MM的電話。 中介者模式案例 書上的交戰(zhàn)三方例子。 租房中介 類

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論