1. 程式人生 > >門面模式與中介者模式

門面模式與中介者模式

門面模式

概念

        為子系統的一組介面提供一個統一使用的介面。它方便了外界對子系統的使用,減少了學習成本——一般的使用者只需要瞭解門面類即可,不需要了解子系統內部的各種處理邏輯。但,外界並不是只能通過門面類訪問子系統,可以直接繞過子系統訪問子系統的底層。

        門面類並不參與子系統的各種邏輯,它只是一個為了方便外界使用的介面。因此,子系統內部並不知道門面類的存在。而且門面類對外界請求的處理方式也是直接轉發給相應的類進行處理。

關鍵詞

        統一——為子系統提供一個統一介面。

        可繞過——外界可繞過子系統,並不是非得使用門面類。

使用場景

        1,子系統比較複雜,學習成本比較高。

        2,可使用各種門面模式定義子系統內的各層的入口點,層與層之間可以使用門面模式。

擴充套件

        門面類依託與子系統中的各個類完成相應的功能,因此可以重組這些內部物件,從而得到不同的門面類。

比較

與中介者模式的比較

        中介者:各個同事類知道中介類的存在,而且會與中介類進行通訊。

        門面:子系統類並不知道門面類的存在,也不會使用門面類的功能。

        兩者都是將請求轉發給其他物件完成,起到中介作用。