(本部落格旨在個人總結回顧)
外觀模式:為子系統的一組介面提供乙個一致的介面,此模式定義了乙個高層次介面,這個介面使得這一子系統更容易使用。
說明:
何時使用:
①設計初期有意識的將不同的兩個層分離。
②開發階段子系統因為不斷重構演化而變的越來越複雜。
③維護乙個遺留的大型系統時,在這個系統已經非常難以維護和擴充套件,但開發需求又不得不使用它的時候。
優點:使耦合性大大減低,上層介面比較清晰簡單。
缺點:不符合開閉原則,如果要改東西很麻煩,繼承重寫都不合適。
// stdafx.h : 標準系統包含檔案的包含檔案,
// 或是經常使用但不常更改的
// 特定於專案的包含檔案
//#pragma once
#include "targetver.h"
#include #include #include using namespace std;
// todo: 在此處引用程式需要的其他標頭檔案
subsystem1.h
#pragma once
class subsystem1
;
subsystem1.cpp
#include "stdafx.h"
#include "subsystem1.h"
subsystem1::subsystem1()
subsystem1::~subsystem1()
void subsystem1::operation1()
subsystem2.h
#pragma once
class subsystem2
;
subsystem2.cpp
#include "stdafx.h"
#include "subsystem2.h"
subsystem2::subsystem2()
subsystem2::~subsystem2()
void subsystem2::operation2()
subsystem3.h
#pragma once
class subsystem3
;
subsystem3.cpp
#include "stdafx.h"
#include "subsystem3.h"
subsystem3::subsystem3()
subsystem3::~subsystem3()
void subsystem3::operation3()
facade.h
#pragma once
#include "subsystem1.h"
#include "subsystem2.h"
#include "subsystem3.h"
class facade
;
facade.cpp
#include "stdafx.h"
#include "facade.h"
facade::facade()
: m_psubsystem1(new subsystem1())
, m_psubsystem2(new subsystem2())
, m_psubsystem3(new subsystem3())
facade::~facade()
if (null != m_psubsystem2)
if (null != m_psubsystem3)
}void facade::methodx()
void facade::methody()
呼叫**
facadepatternmemo.cpp
// facadepatternmemo.cpp : 定義控制台應用程式的入口點。
C 實現外觀模式
概述 外觀模式是結構型模式,它將複雜的子類系統抽象到同乙個介面進行管理,外界只需要通過該介面與子類系統進行互動,而不必直接與複雜的子類系統進行互動 外觀模式降低訪問複雜系統的內部子系統的複雜度,簡化客戶端與之的介面 優點 減少客戶端與系統之間的耦合度 簡化客戶端 缺點 不符合開閉原則,擴張功能需要修...
設計模式 外觀模式(C 實現)
通常某乙個操作的初始化依賴於很多步驟,我們可以把此步驟進行封裝做成乙個類 通過這個類的初始化操作中 對依賴的物件進行建立,然後返回建立此型別的指標 然後在外觀類中完成這些函式的呼叫工作 適用於 為子系統中統一一套介面,讓子系統更加容易使用。include using namespace std cl...
設計模式 外觀模式 C 實現
外觀模式 引入乙個外觀角色封裝類來簡化客戶端與各個子系統之間的互動,為複雜的子系統呼叫提供乙個統一的入口,降低子系統與客戶端的耦合度,且客戶端呼叫非常方便。如果客戶端在執行乙個功能,需要首先執行a物件,然後在執行b物件,最後執行c物件。客戶端需要一次呼叫這個三個物件,如果這個功能被呼叫的頻繁的話,每...