概述:
外觀模式是結構型模式,它將複雜的子類系統抽象到同乙個介面進行管理,外界只需要通過該介面與子類系統進行互動,而不必直接與複雜的子類系統進行互動
外觀模式降低訪問複雜系統的內部子系統的複雜度,簡化客戶端與之的介面
優點:
減少客戶端與系統之間的耦合度
簡化客戶端**
缺點:
不符合開閉原則,擴張功能需要修改客戶端和統一介面的**
使用場景:
客戶端與系統存在最大的依賴性
為複雜系統提供乙個統一的介面
uml類圖:
客戶在外賣平台上下訂單,其中order就是暴露給使用者的外觀,然後飯店和快遞員是子系統
例項:
#include // 飯店
class restaurant
};// 外賣小哥
class deliveryman
};// 下訂單
class order
private:
restaurant cooker;
deliveryman deliver;
};// 使用者
class client
private:
order order;
};int main()
外觀模式(C 實現)
本部落格旨在個人總結回顧 外觀模式 為子系統的一組介面提供乙個一致的介面,此模式定義了乙個高層次介面,這個介面使得這一子系統更容易使用。說明 何時使用 設計初期有意識的將不同的兩個層分離。開發階段子系統因為不斷重構演化而變的越來越複雜。維護乙個遺留的大型系統時,在這個系統已經非常難以維護和擴充套件,...
設計模式 外觀模式(C 實現)
通常某乙個操作的初始化依賴於很多步驟,我們可以把此步驟進行封裝做成乙個類 通過這個類的初始化操作中 對依賴的物件進行建立,然後返回建立此型別的指標 然後在外觀類中完成這些函式的呼叫工作 適用於 為子系統中統一一套介面,讓子系統更加容易使用。include using namespace std cl...
設計模式 外觀模式 C 實現
外觀模式 引入乙個外觀角色封裝類來簡化客戶端與各個子系統之間的互動,為複雜的子系統呼叫提供乙個統一的入口,降低子系統與客戶端的耦合度,且客戶端呼叫非常方便。如果客戶端在執行乙個功能,需要首先執行a物件,然後在執行b物件,最後執行c物件。客戶端需要一次呼叫這個三個物件,如果這個功能被呼叫的頻繁的話,每...