デザインモード-外観モード_Facade Pattern


外観モードは、フェースモードとも呼ばれます.実は外部アクセスサブシステムのためのウィンドウです
Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use. (サブシステムの外部とその内部との通信は、統一されたオブジェクトを介して行わなければならない.外観モードは、サブシステムがより使いやすいように、高レベルのインタフェースを提供する.)
UMLクラス図
C++コード実装
#include <iostream>
using namespace std;

class SubSystemA {
public:
	void SubSystemOperation() { cout << "call SubSystemA::SubSystemOperation()" << endl; }
};

class SubSystemB {
public:
	void SubSystemOperation() { cout << "call SubSystemB::SubSystemOperation()" << endl; }
};

class Facade {
public:
	Facade() {
		_pA = new SubSystemA();
		_pB = new SubSystemB();
	}
	~Facade() {
		delete _pA;
		delete _pB;
	}
	void FacadeMethod() {
		_pA->SubSystemOperation();
		_pB->SubSystemOperation();
	}

private:
	SubSystemA* _pA;
	SubSystemB* _pB;
};


#include "Facade.h"


int main()
{
	Facade *pFacade = new Facade();
	pFacade->FacadeMethod();
	delete pFacade;

	return 0;
}

外観モードは,システムが外部に露出するインタフェースメソッドを変更せず,内部の処理ロジックのみを変更し,他の兄弟モジュールの呼び出しは異なる結果を生じた.サブシステム内部がどんなに雑然としていても、外観モードのオブジェクトがあれば、金玉の外敗絮を達成することができます.この方法は優れたパッケージ化方法である.
外観モードの使用シーン:
1は、複雑なモジュールまたはサブシステムに外部アクセスのためのインタフェースを提供する.
2,外部からのサブシステムへのアクセスはブラックボックス操作のみでよい.
3、技術レベルの低いプログラマーはプロジェクトに不要なリスクをもたらす.砂箱のような機能を実現します.