23种设计模式之门面模式
門面模式的定義
定義: 要求一個子系統的外部與其內部的通信必須通過一個統一的對象進行. 門面模式提供一個高層次的接口, 使得子系統更易于使用.
通俗的說, 就是設計一個類,專門用于對外服務的, 門面對象是外界訪問子系統內部的唯一通道
其類圖如下:
?
其中兩個角色如下:
子系統代碼如下:
?
門面對象代碼:
?
門面模式的應用
門面模式的優點:
門面模式的缺點:
門面模式最大的缺點就是不符合開閉原則, 對修改關閉, 對擴展開放. 一旦在系統投產后發現有一個小錯誤, 怎么解決? 完全最從開閉原則,根本沒辦法解決. 唯一能做的一件事就是修改門面對象的代碼, 這個風向相當大.
門面模式的使用場景:
門面模式的注意事項
1.一個子系統可以有多個門面
?
增加的門面非常簡單, 委托給已經存在的門面對象來處理. 這樣可以盡量保持相同的代碼只編寫一遍, 避免以后到處修改相似代碼的悲劇.
2.門面不參與子系統內的業務邏輯
門面對象中不要出現具體的業務邏輯代碼, 否則就會產生一個倒依賴的問題, 在門面模式中, 門面角色應該是穩定的, 它不應該經常變化, 一個系統一旦投入運行他就不應該被改變, 它是一個系統對外的接口, 變來變去還怎么保證其他模塊的穩定運行呢?
如果一定要出現業務處理, 應該建立一個封裝類, 封裝完畢后提供給門面對象使用.
門面模式是一個很好的封裝方法, 一個子系統比較復雜時, 比如算法或者業務比較復雜, 就可以封裝出一個或多個門面出來, 項目的接口簡單, 而且擴展性非常好. 還有, 對于一個較大的項目, 為了避免人員帶來的風險, 也可以使用門面模式.
總結
以上是生活随笔為你收集整理的23种设计模式之门面模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZJU期末考试记录(研究生)——数据挖掘
- 下一篇: 23种设计模式之访问者模式