勵志

勵志人生知識庫

外貌模式

外觀模式(Facade Pattern),也被稱為門面模式,是一種軟體設計模式,旨在隱藏系統的複雜性,向客戶端提供一個簡單的訪問入口,使得客戶端更容易使用系統。這種模式通過引入一個外觀角色(Facade),該角色為多個子系統提供一個統一的接口,從而降低客戶端與複雜子系統之間的耦合度。

適用場景:

當一個系統擁有多個子系統,且這些子系統的調用鏈複雜時,外觀模式可以簡化客戶端的訪問接口。

在分層結構中,外觀模式有助於定義子系統之間的依賴關係。

當舊系統過於複雜且難以直接改造,而新系統需要訪問舊系統時,可以通過創建一個外觀類來簡化對新系統的調用。

優點:

減少系統之間的相互依賴。

提供簡單的入口,使得調用更加方便。

符合迪米特法則,即「最少知道原則」。

缺點:

違背了開閉原則,即如果系統內部發生變化,可能需要修改外觀類以保持一致性。

實現方式:

定義抽象外觀角色(Facade),為多個子系統提供一個共同的接口。

創建具體外觀角色(Concrete Facade),實現抽象外觀角色,持有各個子系統的套用對象,並初始化、重定向客戶端請求、操作子系統。

定義子系統(Sub System)角色,實現系統的部分功能,客戶端可以通過外觀角色訪問這些功能。

定義客戶端(Client)角色,通過一個外觀角色訪問各個子系統的功能。

所有客戶端代碼僅通過外觀來與子系統進行互動,如果外觀變得過於臃腫,可以考慮將其部分行為抽取為一個新的專用外觀類。