门面模式也叫外观模式。定义如下:
要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。(Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higer-level interface that makes the subsystem easier to use)
类图:
类图非常简单,subsystem可能是一个或多个子系统。每一个子系统都可能是一个或者多个类。但外界访问子系统的通道是通过Facade类。
示例代码:
#include <iostream>
using namespace std;
class SubsystemOne
{
public:
void dosomething()
{
cout<< "One dosomething" <<endl;
}
};
class SubsystemTwo
{
public:
void dosomething()
{
cout<< "Two dosomething" <<endl;
}
};
class SubsystemThree
{
public:
void dosomething()
{
cout<< "Three dosomething" <<endl;
}
};
class Facade
{
public:
void dosomething()
{
m_subone.dosomething();
m_subTwo.dosomething();
m_subThree.dosomething();
}
private:
SubsystemOne m_subone;
SubsystemTwo m_subTwo;
SubsystemThree m_subThree;
};
int main(void)
{
Facade *f = new Facade();
f->dosomething();
delete f;
return 0;
}
运行结果: