Facade.h
#ifndef _FACADE_H_
#define _FACADE_H_
class CSubSystem1
{
public:
CSubSystem1();
~CSubSystem1();
void Operatorion();
private:
};
class CSubSystem2
{
public:
CSubSystem2();
~CSubSystem2();
void Operatorion();
private:
};
class CFacade
{
public:
CFacade();
~CFacade();
void OperatorWapper();
private:
CSubSystem1 *_subs1;
CSubSystem2 *_subs2;
};
#endif
Facade.cpp
#include <iostream>
#include "Facade.h"
using namespace std;
CSubSystem1::CSubSystem1()
{
}
CSubSystem1::~CSubSystem1()
{
}
void CSubSystem1::Operatorion()
{
cout<<"CSubSystem1::Operatorion()"<<endl;
}
CSubSystem2::CSubSystem2()
{
}
CSubSystem2::~CSubSystem2()
{
}
void CSubSystem2::Operatorion()
{
cout<<"CSubSystem2::Operatorion()"<<endl;
}
CFacade::CFacade()
{
this->_subs1=new CSubSystem1;
this->_subs2=new CSubSystem2;
}
CFacade::~CFacade()
{
if(_subs1)
{
delete _subs1;
_subs1=0;
}
if(_subs2)
{
delete _subs2;
_subs2=0;
}
}
void CFacade::OperatorWapper()
{
_subs1->Operatorion();
_subs2->Operatorion();
}
Main.cpp
#include <iostream>
#include "Facade.h"
using namespace std;
int main()
{
CFacade *_fde=new CFacade();
if(_fde)
_fde->OperatorWapper();
if(_fde)
{
delete _fde;
_fde=0;
}
return 0;
}