我們將從Facade模式開始學(xué)習(xí)設(shè)計(jì)模式_第1頁(yè)
我們將從Facade模式開始學(xué)習(xí)設(shè)計(jì)模式_第2頁(yè)
我們將從Facade模式開始學(xué)習(xí)設(shè)計(jì)模式_第3頁(yè)
我們將從Facade模式開始學(xué)習(xí)設(shè)計(jì)模式_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

我們將從Facade模式開始學(xué)習(xí)設(shè)計(jì)模式。這個(gè)模式你很可能已經(jīng)實(shí)現(xiàn)過(guò),只是不知道它的名字罷了。本章將:?解釋Facade模式是什么,用在何處。?給出Facade模式的關(guān)鍵特征。?給出Facade模式的一些變體。?將Facade模式與CAD/CAM問(wèn)題聯(lián)系起來(lái)。《設(shè)計(jì)模式》一書中對(duì)Facade模式的意圖是這樣敘述的:為子系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一接口。Facade模式定義了一個(gè)更高層的接口,使子系統(tǒng)更加容易使用。這段話大致是在說(shuō):我們需要用一種比原有的方式更簡(jiǎn)單的辦法與系統(tǒng)交互,或者說(shuō),我們需要以一種特殊的方式使用系統(tǒng)(例如以二維的方式使用一個(gè)三維繪圖程序)。我們可以創(chuàng)建這樣的交互方式,因?yàn)閷?duì)于所討論的系統(tǒng)我們只需要使用它的一個(gè)子集。6.4實(shí)踐注記:Facade模式Facade不僅可以用來(lái)通過(guò)方法調(diào)用創(chuàng)建更簡(jiǎn)單的接口,還能用來(lái)減少客戶必須處理的對(duì)象數(shù)量。例如,假設(shè)有一個(gè)Client對(duì)象必須處理Database、Model、Element對(duì)象。Client必須首先通過(guò)Database對(duì)象打開數(shù)據(jù)庫(kù),獲取Model對(duì)象,然后再查詢Model對(duì)象,獲取EIement對(duì)象,最后請(qǐng)求Element對(duì)象的信息。如果能夠創(chuàng)建一個(gè)可供Client查詢的DatabaseFacade,那么以上過(guò)程將容易得多(參見圖6-4)。

妙1Facade注前魴妙1Facade注前魴Fa:込走后如果Facade能夠設(shè)計(jì)成無(wú)狀態(tài)的(也就是說(shuō),其中沒有存儲(chǔ)狀態(tài)),則一個(gè)Facade對(duì)象就能夠被多個(gè)其他對(duì)象使用。在后面的第21章中,我將講述如何實(shí)現(xiàn)這一點(diǎn),其中用到了Singleton模式和Double-CheckedLocking模式。假設(shè)除了使用系統(tǒng)中原有功能之外,我還需要提供一些新功能一一比如,記錄對(duì)特定例程的所有調(diào)用。這種情況下,就不僅僅是使用系統(tǒng)的部分功能了。這時(shí),我為Facade類所寫的方法中可以為新的功能增加一些新例程。這仍然是Facade模式,但是增加了新的功能。我認(rèn)為其主要目的是簡(jiǎn)化,因?yàn)槲也幌霃?qiáng)制客戶例程知道它還需要調(diào)用額外的例程一一讓Facade去做好了。Facade模式提出了一種通用方法;它為我提供了起點(diǎn)。這個(gè)模式的Facade部分實(shí)際上就是創(chuàng)建了一個(gè)新的接口供客戶使用,來(lái)代替系統(tǒng)的原有接口。我之所以能夠這樣做,是因?yàn)镃lient對(duì)象并不需要原系統(tǒng)提供的所有功能。模式提出了通用方法模式只是提出了通用方法。是否增加新的功能應(yīng)根據(jù)具體情況而定。模式只是可以作為起點(diǎn)的藍(lán)圖,可不能完全原樣照搬。Facade模式還可以用來(lái)隱藏或者圭寸裝系統(tǒng)。Facade類能夠?qū)⑾到y(tǒng)作為自己的私有成員包含進(jìn)來(lái)。在此情況下,原系統(tǒng)將與Facade類聯(lián)系起來(lái),但Facade類的客戶無(wú)需看到。封裝系統(tǒng)的原因很多,包括:?跟蹤系統(tǒng)的使用情況一通過(guò)強(qiáng)制所有對(duì)系統(tǒng)的訪問(wèn)都必須經(jīng)過(guò)Facade,可以很容易地監(jiān)視系統(tǒng)的使用情況。?改換系統(tǒng)一一未來(lái)可能需要切換系統(tǒng)。通過(guò)將原系統(tǒng)作為Facade類

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論