设计模式-外观模式
2016-10-25 20:08
134 查看
适用情境:对客户端屏蔽各个子系统的细节,使用户可以用统一的接口使用子系统.
客户端:
// subsystema.h #ifndef SUBSYSTEMA_H #define SUBSYSTEMA_H class SubSystemA { public: SubSystemA(); void MethodA(); }; #endif // SUBSYSTEMA_H
// subsystema.cpp #include "subsystema.h" #include <iostream> SubSystemA::SubSystemA() {} void SubSystemA::MethodA() { std::cout << "MethodA..." << std::endl; }
// subsystemb.h #ifndef SUBSYSTEMB_H #define SUBSYSTEMB_H class SubSystemB { public: SubSystemB(); void MethodB(); }; #endif // SUBSYSTEMB_H
// subsystemb.cpp #include "subsystemb.h" #include <iostream> SubSystemB::SubSystemB() {} void SubSystemB::MethodB() { std::cout << "MethodB..." << std::endl; }
// facade.h #ifndef FACADE_H #define FACADE_H #include "subsystema.h" #include "subsystemb.h" class Facade { public: Facade(); ~Facade(); void FacadeMethod(); private: SubSystemA *m_subsysA; SubSystemB *m_subsysB; }; #endif // FACADE_H
// facade.cpp #include "facade.h" Facade::Facade() { m_subsysA = new SubSystemA(); m_subsysB = new SubSystemB(); } Facade::~Facade() { delete m_subsysA; delete m_subsysB; } void Facade::FacadeMethod() { m_subsysA->MethodA(); m_subsysB->MethodB(); }
客户端:
// main.cpp #include <iostream> #include "facade.h" using namespace std; int main(int argc, char *argv[]) { Facade *facade = new Facade(); facade->FacadeMethod(); return 0; }
相关文章推荐
- 乐在其中设计模式(C#) - 外观模式(Facade Pattern)
- Dot Net设计模式—适配器、桥接与外观三模式之间的关系
- 设计模式之Facade(外观 总管 Manager)
- 设计模式之Facade(外观 总管 Manager)
- 乐在其中设计模式(C#) - 外观模式(Facade Pattern)
- 设计模式袖珍版 连续转载之 - Facade(外观)
- 设计模式学习笔记(十一)——Facade外观
- 设计模式与泡mm的关系之Facade外观模式及外观模式的再思考
- 设计模式之Facade(外观)模式
- 设计模式学习笔记(十一)——Facade外观模式
- 设计模式——外观模式
- .NET设计模式(12):外观模式(Façade Pattern)
- 设计模式之Facade(外观 总管 Manager)
- [译]The Facade Pattern外观设计模式 from Chapter 6 of《Design Patterns Explained》
- 设计模式之Facade(外观 总管 Manager)
- 设计模式之Facade(外观 总管 Manager)
- 设计模式之Facade(外观)
- 乐在其中设计模式(C#) - 外观模式(Facade Pattern)
- 设计模式之Facade(外观)模式
- 设计模式(7)-外观模式(Facade)