博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
装饰模式
阅读量:6575 次
发布时间:2019-06-24

本文共 1003 字,大约阅读时间需要 3 分钟。

【1】什么是装饰模式?装饰模式:动态地给一个对象添加一些额外的职责。【2】装饰模式代码示例:代码如下:#include 
#include
using namespace std;class Person{private: string m_strName;public: Person(string strName) { m_strName = strName; } Person(){} virtual void show() { cout << "装扮的是:" << m_strName << endl; }}; class Finery : public Person{protected: Person *m_component;public: void decorate(Person* component) { m_component = component; } virtual void show() { m_component->show(); }};class TShirts : public Finery{public: virtual void show() { m_component->show(); cout << "T shirts" << endl; }};class BigTrouser : public Finery{public: virtual void show() { m_component->show(); cout << "Big Trouser" << endl; }};int main(){ Person *p = new Person("小李"); BigTrouser *bt = new BigTrouser(); TShirts *ts = new TShirts(); bt->decorate(p); ts->decorate(bt); ts->show(); return 0;}

 

转载地址:http://chrjo.baihongyu.com/

你可能感兴趣的文章
PHP中使用socket通信响应速度慢的原因与解决办法
查看>>
Win7下安装Mysql(解压缩版)
查看>>
UVA 11992 Fast Matrix Operations (降维)
查看>>
Asp.net core Identity + identity server + angular 学习笔记 (第一篇)
查看>>
暂时不想读研的几点理由
查看>>
增加临时表空间组Oracle11g单实例
查看>>
Diff Two Arrays
查看>>
stark组件(1):动态生成URL
查看>>
169. Majority Element
查看>>
大整数加法
查看>>
下拉菜单
查看>>
[清华集训2014]玛里苟斯
查看>>
Doctype作用?严格模式与混杂模式如何区分?它们有何意义
查看>>
0029-求最小的数
查看>>
【MVC+EasyUI实例】对数据网格的增删改查(上)
查看>>
第三章:如何建模服务
查看>>
EF CodeFirst下数据库更新
查看>>
Project Euler 345: Matrix Sum
查看>>
mysql允许远程登录
查看>>
你可能不知道的技术细节:存储过程参数传递的影响
查看>>