我与C++设计模式(十)——外观模式
2014-10-04 15:59
295 查看
facade设计模式的想法、思路和实现都是比较简单的,但是其思想确实很有意义的,facade模式在实际开发中应用非常广泛。当用户关心接口的最终使用方法超过接口设计原理时,facade模式就可以考虑看看了。
UML图:
#ifndef _FACADE_H__
#define _FACADE_H__
class subsystem_A
{
public:
subsystem_A();
~subsystem_A();
void operation();
};
class subsystem_B
{
public:
subsystem_B();
~subsystem_B();
void operation();
};
class facade
{
public:
facade();
~facade();
void wrapper_operation();
private:
subsystem_A* _p_sub_A;
subsystem_B* _p_sub_B;
};
#endif
这个模式里面竟然没用到继承恍然大悟啊,这是个体现封装的模式~
UML图:
#ifndef _FACADE_H__
#define _FACADE_H__
class subsystem_A
{
public:
subsystem_A();
~subsystem_A();
void operation();
};
class subsystem_B
{
public:
subsystem_B();
~subsystem_B();
void operation();
};
class facade
{
public:
facade();
~facade();
void wrapper_operation();
private:
subsystem_A* _p_sub_A;
subsystem_B* _p_sub_B;
};
#endif
//facade.cpp #include "facade.h" #include <iostream> using namespace std; subsystem_A::subsystem_A() { } subsystem_A::~subsystem_A() { } void subsystem_A::operation() { cout<<"out from subsystem_A"<<endl; } subsystem_B::subsystem_B() { } subsystem_B::~subsystem_B() { } void subsystem_B::operation() { cout<<"out from subsystem_B"<<endl; } facade::facade(): _p_sub_A(new subsystem_A()), _p_sub_B(new subsystem_B()) { } facade::~facade() { delete _p_sub_A; delete _p_sub_B; } void facade::wrapper_operation() { _p_sub_A->operation(); _p_sub_B->operation(); }
//main.cpp #include "facade.h" int main(int argc, char **argv) { facade *f = new facade(); f->wrapper_operation(); return 0; }
这个模式里面竟然没用到继承恍然大悟啊,这是个体现封装的模式~
相关文章推荐
- C++设计模式浅识外观模式
- C++设计模式编程中Facade外观模式的使用实例解析
- C++设计模式实现--外观(Facade)模式
- c++设计模式(外观模式)
- 设计模式学习笔记(十一)——Facade外观模式
- Dot Net设计模式—适配器、桥接与外观三模式之间的关系
- Java有很多漂亮的外观模式和皮肤
- .NET设计模式(12):外观模式(Façade Pattern)
- Dot Net设计模式—外观模式
- 设计模式(7)-外观模式(Facade)
- 设计模式(5)-外观模式(Facade)
- Facade外观模式
- 设计模式学习笔记(十一)——Facade外观模式
- 设计模式之Facade外观模式
- Java设计模式之外观模式研究
- C# 设计模式--外观模式(Facade)
- 设计模式之Facade(外观)
- 设计模式之外观(Facade)---对象结构型模式
- Facade外观(结构型模式)
- 外观模式(Facade Pattern)