《設計模式之禪》——門面模式

       定義:Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.(要求一個子系統的外部與其內部的通訊必須通過一個統一的對象進行。門面模式提供一個高層次的接口,使得子系統更易於使用。)

       門面模式注重“統一的對象”,也就是提供一個訪問子系統的接口,除了這個接口不允許有任何訪問子系統的行爲方式。門面模式示意圖如圖所示。


       我們先明確一下門面模式的角色。

  • Facade門面角色:客戶端可以調用這個角色的方法。此角色知曉子系統的所有功能和責任。一般情況下,本角色會將所有從客戶端發來的請求委派到相應的子系統去,也就說該角色沒有實際的業務邏輯,只是一個委託類。
  • subsystem子系統角色:可以同時有一個或者多個子系統。每一個子系統都不是一個單獨的類,而是一個類的集合。子系統並不知道門面的存在。對於子系統而言,門面僅僅是另外一個客戶端而已。


1.門面模式的應用


1.1門面模式的優點


  • 減少系統的相互依賴。
  • 提高了靈活性。不管子系統內部如何變化,只要不影響門面對象,任你自由活動。
  • 提高安全性。想讓你訪問子系統的哪些業務就開通哪些邏輯,不在門面上開通的方法,你休想訪問到。


1.2門面模式的缺點


      門面模式最大的缺點就是不符合開閉原則。


其它設計模式內容戳這裏

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