設計模式 - 外觀模式

設計模式 - 外觀模式

ID:12427577

大?。?26.50 KB

頁數(shù):8頁

時間:2018-07-17

設計模式 - 外觀模式_第1頁
設計模式 - 外觀模式_第2頁
設計模式 - 外觀模式_第3頁
設計模式 - 外觀模式_第4頁
設計模式 - 外觀模式_第5頁
資源描述:

《設計模式 - 外觀模式》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫

1、設計模式讀書筆記-----外觀模式前面介紹的適配器模式(設計模式讀書筆記-----適配器模式)講的是如何將一個接口轉換成客戶所需要的另一個接口,它的目的在于解決接口的不兼容性問題。現(xiàn)在這里有這樣一個模式,它的目的在于如何簡化接口,它可以將多個類的復雜的一切隱藏在背后,只顯露出一個干凈美觀的外觀。晚上睡覺之前,你總是喜歡看電視,在你進入臥室的時候你需要完成以下幾個步驟:打開電燈、打開空調、放心銀幕(假如你家有)、打開電視通過這么些繁瑣的步驟后你終于可以看電視了,但是你要睡覺了呢?又要去進行繁瑣的關閉動作。這里你就需要一個外觀模式了,通過實現(xiàn)一個

2、更加合理的接口外觀類將這些動作都包裝起來,實現(xiàn)一鍵“看電視”、一鍵“關電視”。這就是外觀模式的動機一、模式定義所謂外觀模式就是提供一個統(tǒng)一的接口,用來訪問子系統(tǒng)中的一群接口。外觀模式定義了一個高層接口,讓子系統(tǒng)更容易使用。如下圖,是使用外觀模式后將子系統(tǒng)的使用變得更加簡單。在引入外觀模式后,客戶只需要與外觀角色打交道,客戶與子系統(tǒng)的復雜關系有外觀角色來實現(xiàn),從而降低了系統(tǒng)的耦合度。二、模式結構外觀模式包含如下兩個角色:Facade:外觀角色SubSystem:子系統(tǒng)角色三、模式實現(xiàn)場景就是上面那個“睡覺看電視”的場景。實例的UML圖首先是四個

3、組件(電視、電燈、空調、銀幕)1publicclassTelevision{2publicvoidon(){3System.out.println("打開了電視....");4}56publicvoidoff(){7System.out.println("關閉了電視....");8}9}1publicclassLight{2publicvoidon(){3System.out.println("打開了電燈....");4}56publicvoidoff(){7System.out.println("關閉了電燈....");8}9}1publi

4、cclassAirCondition{2publicvoidon(){3System.out.println("打開了空調....");4}56publicvoidoff(){7System.out.println("關閉了空調....");8}9}1publicclassScreen{2publicvoidup(){3System.out.println("升起銀幕....");4}56publicvoiddown(){7System.out.println("下降銀幕....");8}9}然后是比較強大、干凈、美觀的外觀1publiccl

5、assWatchTvSwtichFacade{2Lightlight;3AirConditionac;4Televisiontv;5Screenscreen;67publicWatchTvSwtichFacade(Lightlight,AirConditionac,Televisiontv,Screenscreen){8this.light=light;9this.ac=ac;10this.tv=tv;11this.screen=screen;12}1314publicvoidon(){15light.on();//首先開燈16ac.on()

6、;//然后是打開空調17screen.down();//把銀幕降下來18tv.on();//最后是打開電視19}2021publicvoidoff(){22tv.off();//首先關閉電視機23screen.up();//銀幕升上去24ac.off();//空調關閉25light.off();//最后關燈26}27}客戶端1publicclassClient{2publicstaticvoidmain(String[]args){3//實例化組件4Lightlight=newLight();5Televisiontv=newTelevisi

7、on();6AirConditionac=newAirCondition();7Screenscreen=newScreen();89WatchTvSwtichFacadewatchTv=newWatchTvSwtichFacade(light,ac,tv,screen);1011watchTv.on();12System.out.println("--------------可以看電視了.........");13watchTv.off();14System.out.println("--------------可以睡覺了.........

8、..");15}16}運行結果從上面的使用通過使用外觀模式,客戶可以非常方便的實現(xiàn)比較復雜的功能。四、模式優(yōu)缺點優(yōu)點1、引入外觀模式,是客戶對子系統(tǒng)的使用變得簡單了

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。