问题:
在实际应用中,我们可能封装了很多类,但是这些类只是一个业务的各个步骤,如果让客户端一个一个去调用这些接口,是非常繁琐的一件事。我们应该简化客户端的操作。
解决方案:
我们可以设计一个类:这个类组合了所有的必须的类,然后在一个方法中调用所有的实现,并把这个类提供给客户端,这就是Facade模式(外观)
源代码:
//This a programme about facade
#include <IOSTREAM>
using namespace std;
class SubSystem1{
public:
SubSystem1(){}
~SubSystem1(){}
void Operator(){
cout<<"SubSystem1...."<<endl;
}
};
class SubSystem2{
public:
SubSystem2(){}
~SubSystem2(){}
void Operator(){
cout<<"SubSystem2...."<<endl;
}
};
class Facade{
public:
Facade(){}
~Facade(){}
void OperateWrapper(){
sub1->Operator();
sub2->Operator();
}
private:
SubSystem1 *sub1;
SubSystem2 *sub2;
};
void main()
{
Facade *facade=new Facade;
facade->OperateWrapper();
}