设计模式之八、外观模式Facade</br>
适用范围:</br>
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。</br>
实例:</br>
如炒股。有各种股票,债券,这些可以理解为子类,基金类呢,可以包含各种股票和债券。</br>
不知道有没有说明白。就是在外观类中,可以调用各子类中的方法,这样有利于封装子类中的方法,只对外开放外观类中的方法。</br>
外观模式结构图如下所示:</br>
C++关键代码如下:</br>
1、子类CSubA.cpp</br>
void CSubA::OperateA()</br>
{</br>
cout<<"Sub A Operate A"<<endl;</br>
}</br>
2、子类CSubB.cpp</br>
void CSubB::OperateB()</br>
{</br>
cout<<"Sub B Operate B"<<endl;</br>
}</br>
3、子类CSubC.cpp</br>
void CSubC::OperateC()</br>
{</br>
cout<<"Sub C Operate C"<<endl;</br>
}</br>
4、外观类实现Facade</br>
Facade.h</br>
private:</br>
CSubA *m_suba;</br>
CSubB *m_subb;</br>
CSubC *m_subc;</br>
Facade.cpp</br>
Facade::~Facade()
{
delete m_suba;
delete m_subb;
delete m_subc;
}
Facade::Facade():m_suba(new CSubA()),m_subb(new CSubB()),m_subc(new CSubC())
{</br>
}</br>
Facade::MethodA()</br>
{</br>
m_suba->OperateA();</br>
m_subb->OperateB();</br>
}</br>
Facade::MethodB()</br>
{</br>
m_suba->OperateA();</br>
m_subc->OperateC();</br>
}</br>
5、客户端实现 main.cpp</br>
Facade f;</br>
f.MethodA();</br>
f.MethodB();</br>
<br>
以上,仅供参考。</br>