设计模式-结构型-外观
原创
©著作权归作者所有:来自51CTO博客作者shixin_0125的原创作品,请联系作者获取转载授权,否则将追究法律责任
#ifndef _FACADE_H_
#define _FACADE_H_
#include "stdafx.h"
class Subsystem1
{
public:
Subsystem1()
{
}
~Subsystem1()
{
}
void Operation();
};
class Subsystem2
{
public:
Subsystem2()
{
}
~Subsystem2()
{
}
void Operation();
};
class Facade
{
public:
Facade();
~Facade();
void OperationWrapper();
private:
Subsystem1* _subs1;
Subsystem2* _subs2;
};
#endif
#include "stdafx.h"
#include "facade_impl.h"
#include <iostream>
using namespace std;
void Subsystem1::Operation()
{
cout<<this<<" Subsystem1 operation"<<endl;
}
void Subsystem2::Operation()
{
cout<<this<<" Subsystem2 operation"<<endl;
}
Facade::Facade()
{
this->_subs1 = new Subsystem1();
this->_subs2 = new Subsystem2();
}
Facade::~Facade()
{
delete _subs1;
delete _subs2;
}
void Facade::OperationWrapper()
{
this->_subs1->Operation();
this->_subs2->Operation();
}
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include "facade_impl.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
Facade* f = new Facade();
f->OperationWrapper();
delete f;
system("pause");
return 0;
}