设计模式之装饰模式(Decorator)
来源:互联网 发布:python exit 0 exit 1 编辑:程序博客网 时间:2024/06/04 01:15
优点:1)动态地给对象添加一些额外的职责
2)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
#include <iostream>using namespace std;class Base{public: virtual void Operator() = 0;};class A : public Base{public: void Operator(){cout << "A::Operator"<<endl;}};class Decorator : public Base{public: Decorator(Base*base){_base = base;} void Operator() { if(_base) _base->Operator(); }private: Base *_base;};class DecoratorA : public Decorator{public: DecoratorA(Base *base):Decorator(base){} void Operator() { addStateA(); Decorator::Operator(); } void addStateA(){cout << "DecoratorA::addStateA"<<endl;}};class DecoratorB : public Decorator{public: DecoratorB(Base *base):Decorator(base){} void Operator() { addStateB(); Decorator::Operator(); } void addStateB(){cout << "DecoratorB::addStateB"<<endl;}};int main(){ A *a = new A; Decorator *decoratorA = new DecoratorA(a); decoratorA->Operator(); cout << "-----------"<<endl; Decorator *decoratorB = new DecoratorB(a); decoratorB->Operator(); cout << "-----------"<<endl; Decorator *ab = new DecoratorB(decoratorA); ab->Operator(); return 0;}
运行结果:
DecoratorA::addStateA
A::Operator
DecoratorB::addStateB
A::Operator
DecoratorB::addStateB
DecoratorA::addStateA
A::Operator
阅读全文
0 0
- 设计模式之decorator装饰模式
- 设计模式之-Decorator--装饰器模式
- 设计模式之Decorator(装饰者模式)
- 设计模式之(三、装饰模式Decorator)
- 设计模式之(九)装饰模式Decorator
- 设计模式之Decorator(装饰模式)
- 设计模式之装饰模式(Decorator Pattern)
- 【设计模式】之 Decorator 装饰模式
- 设计模式之八 --- 装饰模式(Decorator)
- 【设计模式】之装饰模式(Decorator)
- 设计模式之八 --- 装饰模式(Decorator)
- java设计模式之装饰模式Decorator
- 设计模式之装饰模式(Decorator)
- 设计模式之装饰模式(Decorator)
- 设计模式之装饰模式(Decorator)
- 设计模式之: Decorator(装饰器)模式
- C++设计模式之装饰(Decorator)模式
- 设计模式之装饰模式,decorator
- 跪PoPoQQQ
- NAT技术与代理服务器简单介绍
- selenium 实现鼠标移动到元素上,并操作元素(鼠标放上后才出现的元素)点击
- 变态青蛙跳台阶的两种典型分析方法
- QT creater之主界面下的界面切换
- 设计模式之装饰模式(Decorator)
- this指针介绍
- 大端小端格式理解
- PLSQL怎样导出oracle表结构和数据
- eclipse快捷键汇总
- 一种得到点云精确边界球的方法
- Web学习笔记_04
- RDB 快照
- Java连接池的基本工作原理