一、意图:
为子系统提供一致的界面,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(); }