Java設(shè)計模式之Facade模式.ppt_第1頁
Java設(shè)計模式之Facade模式.ppt_第2頁
Java設(shè)計模式之Facade模式.ppt_第3頁
Java設(shè)計模式之Facade模式.ppt_第4頁
Java設(shè)計模式之Facade模式.ppt_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java設(shè)計模式之Facade模式,GOF設(shè)計模式一書對Facade模式是這樣描述的: 為子系統(tǒng)中的一組接口提供一個統(tǒng)一接口。Facade模式定義了一個更高層的接口,使子系統(tǒng)更加容易使用。 大致意思是說:使用一種比原有方式更簡單的辦法與系統(tǒng)交互。例如,我們把一個很重要的文件,放在了第二抽屜里,而第二個抽屜的鑰匙放在了第一個抽屜里,我們要想取出這個文件,第一步肯定要拿到第一個抽屜的鑰匙,然后打開它再拿出第二個抽屜的鑰匙,最后打開第二個抽屜取出文件。 我就上面說的那個情形寫一下實現(xiàn)代碼,首先我們要實現(xiàn)二個子系統(tǒng),呵呵,把抽屜比喻成系統(tǒng),有點夸張了(DrawerOne、DrawerTwo): cla

2、ss DrawerOne public void open() System.out.println(第一個抽屜被打開了); getKey();, public void getKey() System.out.println(得到第二個抽屜的鑰匙); class DrawerTwo public void open() System.out.println(第二個抽屜被打開了); getFile(); ,public void getFile() System.out.println(得到這個重要文件); public class Client public static void main

3、(String args) DrawerOne darwerOne=new DrawerOne(); DrawerTwo darwerTwo=new DrawerTwo(); darwerOne.open(); darwerTwo.open(); ,由于沒有使用Fa?ade模式,可以看到要想得到這個文件要首先打開第一個抽屜,然后再打開第二個抽屜,在我們實際所開發(fā)的系統(tǒng)中,有時候客戶要實現(xiàn)某一操作,并不需要知道實現(xiàn)這一操作的詳細(xì)步驟,而是簡單地點擊某一個按鈕就可以得到自己想要的結(jié)果。下面對上面的代碼使用Fa?ade模式進(jìn)行改進(jìn),建立一個FacadeDrawer類:,class DrawerFac

4、ade DrawerOne darwerOne=new DrawerOne(); DrawerTwo darwerTwo=new DrawerTwo(); public void open() darwerOne.open(); darwerTwo.open(); ,修改Client類: public class DrawerClient public static void main(String args) DrawerFacade drawer=new DrawerFacade(); drawer.open(); 輸出結(jié)果如下: 第一個抽屜被打開了,得到第二個抽屜的鑰匙 第二個抽屜被打開了 得到這個重要文件 正如上面所說,客戶端client,它并不需要關(guān)心子系統(tǒng),而是關(guān)心DrawerFacade所留下來的和外部交互的接口,而子系統(tǒng)在DrawerFacade的聚合。 Facade模式主要適用于以下幾種情況: 1) 不需要使用一個復(fù)雜系統(tǒng)的所有功能,而且可以創(chuàng)建一個新的類,包含訪問系統(tǒng)的所有規(guī)則。如果只需要使用系統(tǒng)的部分功能,那么你為新類所創(chuàng)建的API將比原系統(tǒng)的API簡單的多。,2) 希望封裝或者隱藏系統(tǒng)原系統(tǒng)。 3) 希望使用原系統(tǒng)的功能,而且還希望增加一些新的功能。 4) 編寫新類的成本小于所有人學(xué)會使用或者未來維護(hù)原系統(tǒng)上所需的成本。 Fa

溫馨提示

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

評論

0/150

提交評論