設計模式筆記(五) 外觀模式

2021-09-26 14:40:07 字數 2464 閱讀 6939

定義:

又叫門面模式,提供了乙個統一的介面,用來訪問子系統中的一群介面

外觀模式定義了乙個高層介面,讓子系統更容易使用

型別:結構型

適用場景:

子系統越來越複雜,增加外觀模式提供簡單呼叫介面;

構建多層系統結構,利用外觀物件作為每層的入口,簡化層間呼叫

優點:簡化了呼叫過程,無需了解深入子系統,防止帶來風險;

減少系統依賴、鬆散耦合;

更好的劃分訪問層次;

符合迪公尺特法則,即最少知道原則

缺點:增加子系統、擴充套件子系統行為容易引用風險;

不符合開閉原則

外觀模式相關設計模式

具體實現:

禮物兌換案例

應用層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...