Java設計模式(九):外觀模式

外觀模式(facade pattern)

外觀模式(facade pattern):屬於對象結構模式。又稱爲門面模式,爲子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。


外觀模式UML圖

Java設計模式(九):外觀模式

Java


外觀模式涉及的角色

外觀(Facade)角色:客戶端直接調用這個角色的方法,該角色知道哪些子系統類負責處理請求,將客戶的請求代理給適當的子系統對象。子系統(SubSystem)角色:子系統角色集合實現子系統的功能,處理 Facade 對象指派的任務。注意子類中沒有 Facade 的任何信息,即沒有對 Facade 對象的引用。


示例代碼

外觀類 Facade

Java設計模式(九):外觀模式

Java

子系統(SubSystem)集合中的類A SubModuleA

Java設計模式(九):外觀模式

Java

子系統(SubSystem)集合中的類B SubModuleB

Java設計模式(九):外觀模式

Java

子系統(SubSystem)集合中的類C SubModuleC

Java設計模式(九):外觀模式

Java

客戶端(Client)測試類 TestFacadePattern

Java設計模式(九):外觀模式

Java


外觀模式優點

  1. 鬆散耦合:外觀模式鬆散了客戶端與子系統的耦合關係,讓子系統內部的模塊能更容易擴展和維護。

  2. 簡單易用:外觀模式讓子系統更加易用,客戶端不再需要了解子系統內部的實現,也不需要跟衆多子系統內部的模塊進行交互,只需要跟門面類交互就可以了。

  3. 更好的劃分訪問層次:通過合理使用Facade,可以幫助我們更好地劃分訪問的層次。有些方法是對系統外的,有些方法是系統內部使用的。把需要暴露給外部的功能集中到門面中,這樣既方便客戶端使用,也很好地隱藏了內部的細節

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