版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxh2075/article/details/82875978
#ifndef __FACADE_H__
#define __FACADE_H__
#include <iostream>
//外观模式:为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
//引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。
class SubSystemA
{
public:
void DoSomething1();
};
class SubSystemB
{
public:
void DoSomething2();
};
class SubSystemC
{
public:
void DoSomething3();
};
class Facade
{
public:
void DoSomething();
private:
SubSystemA m_a;
SubSystemB m_b;
SubSystemC m_c;
};
void TestFacade();
#endif
#include "Facade.h"
void SubSystemA::DoSomething1()
{
std::cout<< "SubSystemA DoSomething" <<std::endl;
}
void SubSystemB::DoSomething2()
{
std::cout<< "SubSystemB DoSomething" <<std::endl;
}
void SubSystemC::DoSomething3()
{
std::cout<< "SubSystemC DoSomething" <<std::endl;
}
void Facade::DoSomething()
{
m_a.DoSomething1();
m_b.DoSomething2();
m_c.DoSomething3();
}
void TestFacade()
{
Facade * facade = new Facade();
facade->DoSomething();
delete facade;
return;
}