C++设计模式编程中Facade外观模式的使用实例解析
外观模式提供了一个统一的接口,用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用。外观模式让接口变得简单,简化了子系统的接口。外观模式十分简单,简而言之,就是简化你的类的接口,将一系列的复杂的过程封装到内部,对外只提供最简单的接口。 适用场景: 实现: 代码片断 1:Facade.h //Facade.h #ifndef _FACADE_H_ #define _FACADE_H_ class Subsystem1{ public: Subsystem1(); ~Subsystem1(); void Operation(); protected: private: }; class Subsystem2{ public: Subsystem2(); ~Subsystem2(); void Operation(); protected: private: }; class Facade{ public: Facade(); ~Facade(); void OperationWrapper(); protected: private: Subsystem1* _subs1; Subsystem2* _subs2; }; #endif //~_FACADE_H_ 代码片断 2:Facade.cpp //Facade.cpp #include "Facade.h" #include <iostream> using namespace std; Subsystem1::Subsystem1(){ } Subsystem1::~Subsystem1(){ } void Subsystem1::Operation(){ cout<<"Subsystem2 operation.."<<endl; } Subsystem2::Subsystem2(){ } Subsystem2::~Subsystem2(){ } void Subsystem2::Operation(){ cout<<"Subsystem2 operation.."<<endl; } Facade::Facade(){ this->_subs1 = new Subsystem1(); this->_subs2 = new Subsystem2(); } Facade::~Facade(){ delete _subs1; delete _subs2; } void Facade::OperationWrapper(){ this->_subs1->Operation(); this->_subs2->Operation(); } 代码片断 3:main.cpp //main.cpp #include "Facade.h" #include <iostream> using namespace std; int main(int argc,char* argv[]){ Facade* f = new Facade(); f->OperationWrapper(); return 0; } 再来看一个例子: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |