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

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

【1】什么是装饰模式?

装饰模式:动态地给一个对象添加一些额外的职责。

【2】装饰模式代码示例:

代码如下:

1 #include 
2 #include
3 using namespace std; 4 5 class Person 6 { 7 private: 8 string m_strName; 9 public:10 Person(string strName)11 {12 m_strName = strName;13 }14 15 Person(){}16 17 virtual void show()18 {19 cout << "装扮的是:" << m_strName << endl;20 }21 }; 22 23 class Finery : public Person24 {25 protected:26 Person *m_component;27 public:28 void decorate(Person* component)29 {30 m_component = component;31 }32 virtual void show()33 {34 m_component->show();35 }36 };37 38 class TShirts : public Finery39 {40 public:41 virtual void show()42 {43 m_component->show();44 cout << "T shirts" << endl;45 }46 };47 48 class BigTrouser : public Finery49 {50 public:51 virtual void show()52 {53 m_component->show();54 cout << "Big Trouser" << endl;55 }56 };57 58 int main()59 {60 Person *p = new Person("小李");61 BigTrouser *bt = new BigTrouser();62 TShirts *ts = new TShirts();63 64 bt->decorate(p);65 ts->decorate(bt);66 ts->show();67 68 return 0;69 }
View Code

 

Good  Good  Study, Day  Day  Up.

顺序   选择   循环   总结

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

你可能感兴趣的文章
ASP.NET中 Repeater 的使用前台绑定
查看>>
微信公众平台模拟群发技术
查看>>
C语言学习之指针详解
查看>>
学习使用Bing Maps Silverlight Control(一):准备和新建
查看>>
什么是Scrum
查看>>
nginx负载均衡的5种策略
查看>>
90%人都不知道:SVN 和 Git 的一些误解和真相
查看>>
防火墙配置十大任务之九,验证防火墙的运行
查看>>
【linux】浅谈Linux下的 find 指令
查看>>
CentOS 7 使用kubeadm 部署 Kubernetes
查看>>
我的友情链接
查看>>
透视美国大数据爆发全景
查看>>
java学习第一天1.2
查看>>
清空输入缓冲区的方法
查看>>
Yii2 项目优化小贴士
查看>>
UIScrollView的判断位置的属性如下:
查看>>
Applicatin Loader上传app步骤记录
查看>>
两种方法修改table表的内容
查看>>
张小龙莫慌 马化腾莫急 你们要好好的 微信还有时间
查看>>
一些常用软件静默安装参数(nsis,msi,InstallShield ,Inno)
查看>>