版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年河南輕工職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試模擬試題有答案解析
- 2026年河北勞動關(guān)系職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試參考題庫帶答案解析
- 神經(jīng)外科微創(chuàng)手術(shù)技術(shù)
- 財險合規(guī)培訓(xùn)課件
- 胡蜂螫傷規(guī)范化診治專家共識總結(jié)2026
- 生物材料在組織工程中的應(yīng)用前景
- 護(hù)理護(hù)理護(hù)理信息化建設(shè)與護(hù)理管理
- 醫(yī)療護(hù)理專業(yè)禮儀與形象
- 2026年常州工程職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試參考題庫帶答案解析
- 心臟重癥護(hù)理流程優(yōu)化
- 液壓支架裝配翻轉(zhuǎn)平臺施工方案
- 房地產(chǎn)企業(yè)財務(wù)風(fēng)險分析及防范措施研究-以碧桂園為例
- 髕骨骨折護(hù)理查房課件
- 農(nóng)業(yè)安全用藥培訓(xùn)機械課件
- 直播間合伙人合同協(xié)議書
- 貴州中醫(yī)藥大學(xué)時珍學(xué)院《Java程序設(shè)計A》2024-2025學(xué)年第一學(xué)期期末試卷
- (2025年標(biāo)準(zhǔn))園區(qū)基金投資協(xié)議書
- 2025秋季學(xué)期國開電大法律事務(wù)專科《民法學(xué)(2)》期末紙質(zhì)考試多項選擇題庫珍藏版
- 無人機裝調(diào)檢修工基礎(chǔ)技能培訓(xùn)手冊
- 陽江海上風(fēng)電項目建議書
- 體育課堂常規(guī)
評論
0/150
提交評論