c++装饰模式
来源:互联网 发布:矩阵kvm 编辑:程序博客网 时间:2024/06/09 21:27
<pre name="code" class="cpp">#include "stdafx.h"#include <iostream>#include <vector>using namespace std;class Component{public:virtual void Method() = 0;};class ConcreteComponent:public Component{public:void Method();};void ConcreteComponent::Method(){cout<<"I am the component need to be decorated"<<endl;}class Decorator:public Component{private:Component* m_pComponent;public:Decorator(Component* pComponent):m_pComponent(pComponent) {}void Method();};void Decorator::Method(){if(m_pComponent != NULL){m_pComponent->Method();}}class ConcreteDecoratorA:public Decorator{public:ConcreteDecoratorA(Component* pComponent):Decorator(pComponent) {}void Method();void Add();};void ConcreteDecoratorA::Add(){cout<<"we have add A for the component"<<endl<<endl;}void ConcreteDecoratorA::Method(){Decorator::Method();Add();}class ConcreteDecoratorB:public Decorator{public:ConcreteDecoratorB(Component* pComponent):Decorator(pComponent) {}void Method();void Add();};void ConcreteDecoratorB::Add(){cout<<"we have add B for the component"<<endl<<endl;}void ConcreteDecoratorB::Method(){Decorator::Method();Add();}int _tmain(int argc, _TCHAR* argv[]){Component* pConPonent = new ConcreteComponent;Decorator* pDecoratorA = new ConcreteDecoratorA(pConPonent);pDecoratorA->Method();Decorator* pDecoratorB = new ConcreteDecoratorB(pConPonent);pDecoratorB->Method();Decorator* pDecorator = new ConcreteDecoratorB(pDecoratorA);pDecorator->Method();
// forget to delete...getchar();return 0;}
0 0
- 装饰模式(c++)
- 【C++】Chapter3:装饰模式
- Objective C--装饰模式
- Objective C 装饰模式
- 装饰者模式(c++)
- 装饰模式 C#
- 【C++】装饰器模式
- 装饰模式(C++)
- 装饰者模式(C++)
- 装饰者模式(C++)
- C语言设计模式:装饰模式
- 大话设计模式-装饰模式(C++)
- C#--设计模式之装饰者模式
- 装饰模式-撤销装饰
- 乐在其中设计模式(C#) - 装饰模式(Decorator Pattern)
- (C++)设计模式------装饰者模式 decorator
- C语言和设计模式(装饰模式)
- C语言和设计模式(装饰模式)
- jQuery UI基础----14jQuery UI Widgets-spinner(下拉框
- c++单例模式初探
- [leetcode] 24 Swap Nodes in Pairs(交换链表相邻结点)
- PAT1014 福尔摩斯的约会
- mongodb数据库的备份和恢复
- c++装饰模式
- JDBC数据库连接
- d3.js学习笔记(一)
- System Design 之 Tiny Uri
- [深入理解Java虚拟机]第三章 对象存活判定算法
- CentOS 创建新用户
- UNIX下的LD_PRELOAD环境变量
- html position 用法
- 树_最小堆