外观模式(Facade)为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
//Facade.h
#ifndef _FACADE_H
#define _FACADE_H
class SubSystemOne
{
public:
void Operation();
};
class SubSystemTwo
{
public:
void Operation();
};
class Facade
{
public:
Facade();
~Facade();
void OperationWapper();
SubSystemOne* _sub1;
SubSystemTwo* _sub2;
};
#endif
//Facade.cpp
#include "Facade.h"
#include <iostream>
using namespace std;
void SubSystemOne::Operation()
{
cout<<"operation of subsystem one..."<<endl;
}
void SubSystemTwo::Operation()
{
cout<<"operation of subsystem two..."<<endl;
}
Facade::Facade()
{
_sub1 = new SubSystemOne();
_sub2 = new SubSystemTwo();
}
Facade::~Facade()
{
delete _sub1;
delete _sub2;
}
void Facade::OperationWapper()
{
_sub1->Operation();
_sub2->Operation();
}
//main.cpp
#include "Facade.h"
int main()
{
Facade * fa = new Facade();
fa->OperationWapper();
return 0;
}