您的位置:首页 > 编程语言 > C语言/C++

C++设计模式之十:Facade(外观)

2012-05-28 21:12 429 查看
一、意图:

为子系统提供一致的界面,Facade定义高层接口,从而使子系统的使用更加方便;

二、类图(截图自《大话设计模式》):



三、组成元素:

Facade:代理客户请求给子系统;

SubSys:子系统;

四、代码实现:

#include<iostream>
#include <string>
using namespace std;

//系统类
class SubSysOne
{
public:
void MethodOne()
{
cout<<"MethodOne"<<endl;
}
};

class SubSysTwo
{
public:
void MethodTwo()
{
cout<<"MethodTwo"<<endl;
}
};

class SubSysThree
{
public:
void MethodThree()
{
cout<<"MethodThree"<<endl;
}
};

//外观类
class Facade
{
private:
SubSysOne* sub1;
SubSysTwo* sub2;
SubSysThree* sub3;
public:
Facade()
{
sub1 = new SubSysOne();
sub2 = new SubSysTwo();
sub3 = new SubSysThree();
}
~Facade()
{
delete sub1;
delete sub2;
delete sub3;
}

void FacadeMethod()
{
sub1->MethodOne();
sub2->MethodTwo();
sub3->MethodThree();
}
};

//客户端
void main()
{
Facade* test = new Facade();
test->FacadeMethod();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: