看了门面模式的一些资料。觉得门面模式就是为了解决实体类过多,而这些实体类就是为了做一件事情,组合起来。
因此门面模式出现了,他就是解决很多类的协调关系。用另个一类聚合这些类之间的事情。因此,当我们调用一个类的时候,所有的事情完成了
这个看起来就像一个门面一样。
图呢,和策略模式差不多,但是本质思想的功能是不一样的。
我在这里是用去征政府部门办事情,必须先去部门A,然后再去部门B。顺序不等乱。
但是门面模式出现了,就单独成立了一个部门,你直接去这个部门,就给你办好了。
代码
// Facade.cpp : 定义控制台应用程序的入口点。
//************************************************************************/
/* @filename Facade.cpp
@author wallwind
@createtime 2012/10/21 22:25
@function 门面模式
@email wochenglin@qq.com
*/
/************************************************************************/
#include "stdafx.h"
#include <iostream>
using namespace std;
class Department
{
public:
Department(){}
virtual ~Department(){}
virtual void doAction()=0;
};
class DepartmentA:public Department
{
public:
DepartmentA(){}
virtual ~DepartmentA(){}
void doAction()
{
cout<<"DepartmentA"<<endl;
}
};
class DepartmentB:public Department
{
public:
DepartmentB(){}
virtual ~DepartmentB(){}
void doAction()
{
cout<<"DepartmentB"<<endl;
}
};
class Facade
{
public:
Facade()
{
m_depa = new DepartmentA();
m_depb = new DepartmentB();
}
~Facade()
{
if (m_depa!=NULL)
{
delete m_depa;
}
if (m_depb!=NULL)
{
delete m_depb;
}
}
void OneDO()
{
m_depa->doAction();
m_depb->doAction();
}
private:
Department* m_depa;
Department* m_depb;
};
int _tmain(int argc, _TCHAR* argv[])
{
Facade face;
face.OneDO();;
return 0;
}
更多文章,欢迎访问: