外觀模式
一.小結
- 定義:要求一個子系統的外部與其內部的通訊必須通過一個統一的物件進行。外觀模式提供一個高層次的介面,使得子系統更易於使用。
- 優點:1.減少系統的相互依賴 2.提高了靈活性 3.提高安全性
- 缺點:不符合開閉原則,如果外觀物件出現錯誤後只能修改外觀物件
- 使用場景:1.為複雜的模組或子系統提供一個對外界訪問的介面 2.子系統相對獨立 3.預防低水平人員帶來的風險擴散
- 注意事項:外觀物件不參與子系統內的業務邏輯。
- 通用UML圖
二.例子
平時我們去商店買東西,用手機掃櫃檯上的收款碼用微信或者支付寶付款,這一過程對商家來說,收款碼相當於外觀物件,微信或者支付寶收款相當於子系統。下面模擬這情景:
-
收款方式介面(子系統介面)
public interface ICollectMoney { void collect(); }
-
微信收款和支付寶收款(子系統)
public class WXCollectMoney implements ICollectMoney { @Override public void collect() { System.out.println("微信到賬10元"); } }
public class AliPayCollectMoney implements ICollectMoney { @Override public void collect() { System.out.println("支付寶到賬10元"); } }
-
外觀物件
public class CounterCode { private ICollectMoney wx, alipay; public CounterCode() { wx = new WXCollectMoney(); alipay = new AliPayCollectMoney(); } public void wxCollect() { wx.collect(); } public void alipayCollect() { alipay.collect(); } }
-
情景類
public class Client { public static void main(String[] args) { // 我們平時去商店買東西,用微信或者支付寶付款過程 CounterCode counterCode = new CounterCode(); counterCode.alipayCollect(); } }
相關文章
- 外觀模式及其改進(一):外觀模式概述模式
- JS 外觀模式JS模式
- 設計模式-外觀模式設計模式
- 【設計模式】外觀設計模式
- 結構型模式:外觀模式模式
- 設計模式(十)外觀模式設計模式
- java設計模式-外觀模式Java設計模式
- 設計模式系列-外觀模式設計模式
- 設計模式(十):外觀模式設計模式
- Python設計模式-外觀模式Python設計模式
- 極簡設計模式-外觀模式設計模式
- 設計模式---外觀設計模式設計模式
- JS 設計模式 十一(外觀模式)JS設計模式
- Java設計模式11:外觀模式Java設計模式
- 外觀模式(Facade)模式
- python-外觀模式Python模式
- JavaFacadePattern(外觀模式)Java模式
- 結構性外觀模式.模式
- 外觀模式及其改進(二):抽象外觀類的引入模式抽象
- 設計模式之【門面模式(外觀模式)】設計模式
- 《Head First 設計模式》:外觀模式設計模式
- 設計模式第六講-外觀模式設計模式
- 【23種設計模式】外觀模式(十)設計模式
- 23種設計模式(8)-外觀模式設計模式
- 通俗 Python 設計模式——外觀模式Python設計模式
- 設計模式 | 外觀模式及典型應用設計模式
- 設計模式——9外觀模式(Facade)設計模式
- Go 實現常用設計模式(八)外觀模式Go設計模式
- JS設計模式之Facade(外觀)模式JS設計模式
- 結構模式 01-外觀模式(facade)模式
- 軟體設計模式系列之十二——外觀模式設計模式
- 《設計模式》 - 8. 外觀模式( Facade )設計模式
- java23種設計模式-門面模式(外觀模式)Java設計模式
- Objective-C設計模式解析-外觀Object設計模式
- 設計模式【9】-- 外觀模式?沒那麼高大上設計模式
- C#設計模式-外觀模式(Facade Pattern)C#設計模式
- 設計模式學習-使用go實現外觀模式設計模式Go
- 設計模式--外觀模式Facade(結構型)設計模式