外观模式简单实现

外观模式
外观模式:这个应该是一个架构模式,把一个模块的外部接口用一个外部类提供出去,对外部来说只有这个类(Facade)是可以访问的。
代码(c++)
#include
using namespace std;
#include

// 抽象层
class IFacade{
public:
virtual void funA()=0;
virtual void funB()=0;
virtual void funC()=0;
};
class ClientA{
public:
IFacade* facade;
void fun(){
facade->funA();
}
};
class ClientB{
public:
IFacade* facade;
void fun(){
facade->funB();
}
};
class ClientC{
public:
IFacade* facade;
void fun(){
facade->funC();
}
};

// 具体层
class Facade{

};
class FA{
public:
void funA(){
cout<<“FA::funA\n”;
}
};
class FB{
public:
void funB(){
cout<<“FB::funB\n”;
}
};
class FC{
public:
void funC(){
cout<<“FC::funC\n”;
}
};

class Facade1: public IFacade{
public:
FA* fa;
FB* fb;
FC* fc;
Facade1(){
fa = new FA();
fb = new FB();
fc = new FC();
}
virtual void funA(){
fa->funA();
}
virtual void funB(){
fb->funB();
}
virtual void funC(){
fc->funC();
}
};
//客户端调用
int main()
{
cout<<“外观模式模式\n”;
Facade1* f1 = new Facade1();
ClientA* ca = new ClientA();
ca->facade = f1;
ClientB* cb = new ClientB();
cb->facade = f1;
ClientC* cc = new ClientC();
cc->facade = f1;

ca->fun();
cb->fun();
cc->fun();

//看代码不用考虑以下内容
int cin_a;
cin>>cin_a;
return 0;

}

猜你喜欢

转载自blog.csdn.net/xie__jin__cheng/article/details/87967042