1. 程式人生 > >設計模式:學習筆記(11)——外觀模式

設計模式:學習筆記(11)——外觀模式

職責 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)——外觀模式