为了系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
#pragma once
#include "stdafx.h"
#include<string>
#include<iostream>
#include<windows.h>
using namespace std;
//外观模式(Facade)
class SubSystemOne {
public:
VOID SubSystemA() {
cout << "SubSystem method A" << endl;
}
};
class SubSystemTwo {
public:
VOID SubSystemB() {
cout << "SubSystem method B" << endl;
}
};
class SubSystemThree {
public:
VOID SubSystemC() {
cout << "SubSystem method C" << endl;
}
};
class Facade {
private:
SubSystemOne * mpSubSystemOne = NULL;
SubSystemTwo * mpSubSystemTwo = NULL;
SubSystemThree * mpSubSystemThree = NULL;
public:
Facade() {
mpSubSystemOne = new SubSystemOne();
mpSubSystemTwo = new SubSystemTwo();
mpSubSystemThree = new SubSystemThree();
}
VOID FacadeShowA() {
mpSubSystemOne->SubSystemA();
mpSubSystemThree->SubSystemC();
}
VOID FacadeShowB() {
mpSubSystemTwo->SubSystemB();
mpSubSystemThree->SubSystemC();
}
~Facade() {
delete mpSubSystemOne;
delete mpSubSystemTwo;
delete mpSubSystemThree;
}
};
int main()
{
Facade *pFacade = new Facade();
pFacade->FacadeShowA();
pFacade->FacadeShowB();
delete pFacade;
getchar();
return 0;
}