C++设计模式之装饰者模式(Decorator)
来源:互联网 发布:linux kill firefox 编辑:程序博客网 时间:2024/06/07 22:10
#include "StdAfx.h"#include <SSTREAM>#include<iostream>#include<fstream>#include<malloc.h>#include <windows.h>#include <list>using namespace std;class Base{//基类public: virtual void Run() { printf("基类跑步....."); }protected:private:};//当你的工程的类全部都设计好了,此时需求突然说在类功能上增加一些功能,那么我们此时可以使用装饰者模式//实现了在运行时动态的扩展对象功能的能力(Concrete也就是我们平时使用到的一个具体类,但是使用过程中发现该类不够使用了,所以增加了BaseDecorator,DecoratorA和DecoratorB)class Concrete:public Base{//具体类public: virtual void Run() { printf("具体类在跑步....\n"); }protected:private:};//下面就是新增加的功能,以方便调用class BaseDecorator:public Base{//装饰基类public: Base* m_pBase; virtual void Run() { if(m_pBase!=NULL) { m_pBase->Run(); } }protected:private:}; class DecoratorA:public BaseDecorator{//装饰类一public: virtual void Run() { AddAction();//做一些动作 m_pBase->Run(); } virtual void AddAction() { printf("做一些动作......\n"); }protected:private:};class DecoratorB:public BaseDecorator{public: virtual void Run() { m_pBase->Run(); AddBehaviour();//添加一些行为 } void AddBehaviour() { printf("添加了行为....\n"); }protected:private:};int main(void) { BaseDecorator *pA=new DecoratorA(); Base* pB=new Concrete(); pA->m_pBase=pB; pA->Run(); BaseDecorator* pC=new DecoratorB(); pC->m_pBase=pB; pC->Run(); return 0; }
0 0
- 设计模式之Decorator(装饰者模式)
- 设计模式之(Decorator)装饰者模式
- 设计模式之装饰者模式(Decorator)
- 设计模式之装饰者模式Decorator
- 设计模式之Decorator(装饰者)
- 设计模式之:Decorator装饰者
- 设计模式之装饰者-Decorator
- 设计模式之Decorator(装饰者)
- 设计模式之Decorator装饰者设计模式
- Decorator装饰者设计模式
- 设计模式之decorator装饰模式
- 设计模式之-Decorator--装饰器模式
- 设计模式之(三、装饰模式Decorator)
- 设计模式之(九)装饰模式Decorator
- 设计模式之Decorator(装饰模式)
- 设计模式之装饰模式(Decorator Pattern)
- 【设计模式】之 Decorator 装饰模式
- 设计模式之八 --- 装饰模式(Decorator)
- 个人小代码
- Sublime Text 3 插件配置
- Linux 小命令之 watch
- Android数据存储
- Highcharts构建空饼图
- C++设计模式之装饰者模式(Decorator)
- [数学]两种组合数学公式及其比较
- GRE写作必备句型
- 《大话数据结构》第1章 数据结构绪论 1.2 你数据结构怎么学的?
- 大二下學期學習生活總結
- 可穿戴设备(CC2541)上微信(7)
- Spring事务配置的五种方式
- ApplicationContext is never closed
- c++ 函数返回引用