定義:
又叫門面模式,提供了乙個統一的介面,用來訪問子系統中的一群介面
外觀模式定義了乙個高層介面,讓子系統更容易使用
型別:結構型
適用場景:
子系統越來越複雜,增加外觀模式提供簡單呼叫介面;
構建多層系統結構,利用外觀物件作為每層的入口,簡化層間呼叫
優點:簡化了呼叫過程,無需了解深入子系統,防止帶來風險;
減少系統依賴、鬆散耦合;
更好的劃分訪問層次;
符合迪公尺特法則,即最少知道原則
缺點:增加子系統、擴充套件子系統行為容易引用風險;
不符合開閉原則
外觀模式相關設計模式
具體實現:
禮物兌換案例
應用層test只和外觀類giftexchangeservice通訊,不與子系統互動
增加子系統需要修改外觀類,不符合開閉原則
如外觀類變動頻繁,可使用抽象外觀類
子系統:
public
class
qualifyservice}--
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
public
class
pointspaymentservice}--
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
public
class
shippingservice
}
外觀類:
public
class
giftexchangeservice}}
}
應用層:
public
class
test
}
輸出:
校驗羅技無線滑鼠積分資格通過
支付羅技無線滑鼠積分成功
羅技無線滑鼠進入物流系統
積分下單成功!訂單號: 335213552
具體應用:
1、org.springframework.jdbc.support.jdbcutils
對jdbc介面進行封裝
...
.public
static
void
closeconnection
(@nullable connection con)
catch
(sqlexception ex)
catch
(throwable ex)}}...
2、org.apache.ibatis.session.configuration
public metaobject newmetaobject
(object object)
public parameterhandler newparameterhandler
tomcat
3、org.apache.catalina.connector.requestfacade
httpservletrequest的外觀類
設計模式之 五 外觀模式Facade
facade外觀模式,是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。在這裡我想舉乙個例子 比如,現在有一輛汽車,我們 客戶程式 要啟動它,那我們就要發動引擎 子系統1 使四個車輪 子系統2 ...
設計模式筆記(八) 外觀模式
外觀模式 facade 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這個子系統更加容易使用。使用場合 第一 在設計初期階段,應該有意識的將不同的兩個層分離,層與層之間建立外觀 facade 第二 在開發階段,子系統因為不斷的重構演化而變得越來越複雜,增加外觀可以提供...
《大話設計模式 外觀模式》筆記
1 外觀模式 facade 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。2 外觀模式結構圖 2 簡單 實現 四個子系統類 public class subsystema public class subsystemb public class...