作用
:
為一組具有複雜且全面的介面物件提供乙個簡單特定的介面。
正文:
「金玉其外,敗絮其中。」這句話對門面模式倒是可以解釋。「金玉其外」指的就是門面,是呼叫者能看到的,是簡單特定的介面。「敗絮其中」指的就是複雜且全面的介面物件,裡面有複雜的邏輯和結構,對呼叫者來說,是不可見的。
如果呼叫者不通過門面類而直接呼叫子系統的介面,那就是很頭疼的事。「一葉障目,不見泰山。」這就是門面模式的作用。
我就用乙個飯店的例子。
乙個飯店,有很多的部門,顧客對每乙個部門的職責不關心,要吃飯的顧客只要走進飯店,就有服務員過來服務,等酒足飯飽後,顧客只要說聲買單,就有服務員過來結賬。對於顧客而言,並不知道服務員是哪個部門的。
再舉個例子,那就是照相機裡的程式。在拍照前,照相機要做很多的事情,調節光圈,調節焦距,是否要開閃光燈,還有很多普通使用者根本不知道的。而這些對於攝影初學者來說,是一竅不通的。這時自動拍照功能就是乙個門面模式的應用。使用者只要取景,再按快門就行了,其它一切複雜的動作都被隱藏起來。
門面模式不一定是乙個類,也可以是一組函式。它把所有全面性和複雜性隱藏在乙個非常簡單且特定的介面後面,它是使用者訪問子系統的唯一途徑,所有越過介面直接去訪問子系統都是違背約定的。
門面模式比較簡單,我也就不多說了。
門面(Facade)模式
facade模式也叫外觀模式 在 設計模式 一書中他是這樣敘述的 為子系統中的一組介面提供乙個統一的介面。facade模式定義了乙個更高的介面,使子系統更加容易使用。facade模式的關鍵特徵 意圖 希望簡化原有系統的使用方法,需要定義自己的介面。問題 只需要使用某個複雜系統的子集,或者,需要以一種...
門面模式 facade
門面模式定義 為子系統中的一組介面提供了乙個一致的介面,facade模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。現代的軟體系統都是比較複雜的,設計師處理複雜系統的乙個常見方法便是將其 分而治之 把乙個系統劃分為幾個較小的子系統。如果把醫院作為乙個子系統,按照部門職能,這個系統可以劃分...
門面 Facade 模式
外部與乙個子系統的通訊必須通過乙個統一的門面 facade 物件進行,這就是門面模式。門面模式要求乙個子系統的外部與其內部的通訊必須通過乙個統一的門面 facade 物件進行。門面模式提供乙個高層次的介面,使得子系統更易於使用。一,結構 門面 facade 角色 客戶端可以呼叫這個角色的方法。此角色...