Facade.h
#pragma once
class Subsys1
{
public:
Subsys1();
~Subsys1();
void Operation();
};
class Subsys2
{
public:
Subsys2();
~Subsys2();
void Operation();
};
class Facade
{
public:
Facade();
~Facade();
void OperationWrapper();
private:
Subsys1* _subs1;
Subsys2* _subs2;
};
Facade.cpp
#include "Facade.h" #includeusing namespace std; Facade::Facade() { _subs1 = new Subsys1(); _subs2 = new Subsys2(); } Facade::~Facade() { delete _subs1; delete _subs2; } void Facade::OperationWrapper() { _subs1->Operation(); _subs2->Operation(); } Subsys1::Subsys1() { } Subsys1::~Subsys1() { } void Subsys1::Operation() { cout << "Subsystem1 operation.." << endl; } Subsys2::Subsys2() { } Subsys2::~Subsys2() { } void Subsys2::Operation() { cout << "Subsystem2 operation.." << endl; }
main.cpp
#include#include "Facade.h" using namespace std; int main(int argc, char* argv[]) { Facade* f = new Facade(); f->OperationWrapper(); system("pause"); return 0; }
Subsystem1 operation.. Subsystem2 operation.. 请按任意键继续. . .
Facade (外观)模式就是找一个人代理你想要做的所有事情,在高层提供了一个统一的接口,只要维护他和他的简单的一个接口,同时解耦了系统



