java與模式:門面模式

基本定義

  • 含義:外部與一個子系統的通信必須通過一個統一的門面(Facade)對象進行
  • 作用:門面模式的門面類將客戶端與子系統的內部複雜性分隔,使得客戶端只需要與門面對象打交道,而不需要與子系統內部的很多對象打交道
    核心特點:知道子角色的功能和責任,將客戶端發來的請求委派給子系統,無業務邏輯,不參與子系統的業務邏輯
    一個形象的例子:
    醫院無接待員的情況下病人看病時:
    在這裏插入圖片描述
    當醫院改善增加了接待員,病人的看病體驗:
    在這裏插入圖片描述

病人:客戶端
接待員:門面角色,客戶端調用這個角色,處理客戶端的請求委派到相應子系統
繳費、掛號:子系統角色
示意圖:
在這裏插入圖片描述

使用場景

爲一個複雜子系統提供一個簡單接口,使得子系統更具可複用性;
子系統的獨立,將子系統與它的客戶端以及其他的子系統分離;
層次化結構,構建一個層次化系統時使用facade模式定義每一層的入口,限定僅通過facade通信,解構層與層的依賴

例子

slf4j的官方文檔解釋如下 :

The Simple Logging Facade for Java (SLF4J) serves as a simple 
facade or abstraction for various logging frameworks, 
such as java.util.logging, logback and log4j.

slf4j並不是日誌系統的具體實現,而是一個java日誌標準。正如文檔所說作爲各種日誌框架的門面或者抽象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章