設計模式:學習筆記(11)——外觀模式
阿新 • • 發佈:2018-05-20
職責 div 再看 style 假設 str 改變 復雜 並且
設計模式:學習筆記(11)——外觀模式
引入外觀模式
什麽是外觀模式
外觀模式(Facade Pattern)隱藏系統的復雜性,並向客戶端提供了一個客戶端可以訪問系統的接口。這種類型的設計模式屬於結構型模式,它向現有的系統添加一個接口,來隱藏系統的復雜性。這種模式涉及到一個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委托調用。
身邊的外觀模式
客戶端不需要知道系統內部的復雜聯系,整個系統只需提供一個"接待員"即可。
或者理解下面這個例子:
- 電腦整機是CUP、內存、硬盤的外觀。有了外觀以後,啟動電腦和關閉電腦都簡化了。
- 啟動電腦(按一下電源鍵):啟動CPU、啟動內存、啟動硬盤
- 關閉電腦(按一下電源鍵):關閉硬盤、關閉內存、關閉CPU
三個模式的對比
裝飾者:不改變接口,但加入職責。
適配器:將一個接口轉換成另一個接口。
外觀:讓接口更簡單。
相關類圖
實例分析
首先假設看病有四個流程
class guahao{ public void doSomething(){ //..... } } class menzheng{ public void doSomething(){ //..... } } class huajia{ public void doSomething(){ //..... } } class quyao{ public void doSomething(){ //..... } }
引入外觀模式前,我們需要自己去分別做每一步,並且非常麻煩,我們引入接待員;
class jiedai{ guahao gh; menzheng mz; huajia hj; quyao qy; public void kanbing{ gh.doSomething(); mz.doSomething(); hj.doSomething(); qy.doSomething(); } }
這樣我們再看病,就簡單的很了
public static void main(String[] args) { jiedai jd = new jiedai(); jd.kanbing(); }
設計模式:學習筆記(11)——外觀模式