您的位置:首页 > 其它

设计模式(10) - Facade外观模式

2013-12-22 00:09 330 查看

1. 意图

为了给子系统中一系列的接口提供一个统一的接口,外观模式定义了一个更高层次的接口,使得子系统更容易使用。

外观模式不同于适配器模式,因为外观模式简化了类结构,而适配器模式维持类结构不变。

外观模式提供了一条在子系统中构造我们自己的API的途径,来减少子系统中API的大小以及复杂度的增长。

2. UML类图



3. 代码实现

#include<iostream>

using namespace std;

class SubSystem1
{
public:
void method1()
{ cout<<"SubSystem1"<<endl; }
};

class SubSystem2
{
public:
void method2()
{ cout<<"SubSystem2"<<endl; }
};

class SubSystem3
{
public:
void method3()
{ cout<<"SubSystem3"<<endl;}
};

//Facade
class Facade
{
public:
void methodA()	{
cout<<"Facade: methodA()"<<endl;
sub1.method1();
sub2.method2();
}

void methodB()	{
cout<<"Facade: methodB()"<<endl;
sub2.method2();
sub3.method3();
}
private:
SubSystem1 sub1;
SubSystem2 sub2;
SubSystem3 sub3;
};

int main()
{
Facade *fd = new Facade();
fd->methodA();
fd->methodB();
delete fd;
return 0;
}
运行结果为:

Facade: methodA()

SubSystem1

SubSystem2

Facade: methodB()

SubSystem2

SubSystem3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: