设计模式(单一职责)——装饰者模式
来源:互联网 发布:软件系统售后服务承诺 编辑:程序博客网 时间:2024/05/16 14:18
装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
喜欢喝咖啡的朋友们,通常都不会满足于原味。因此,在著名的星巴克,个人觉得一杯咖啡30多,纯粹是去为了装逼?我们会看到大家购买咖啡时,会要求在其中加入各种调料,比如蒸奶、豆浆、摩卡、奶泡……
当这么多个性化的需求要被满足,我们不禁好奇它强大的订单系统是如何实现的。
难道是设计成下面的鬼样子?
当然不行!!!能写出这种级别代码的程序猿,多半是刚刚毕业的。有经验的程序猿说了这样一句话:利用实例变量和继承,就可以追踪这些调料啊。
牛逼的程序猿有看不下去了,将来如果出现变化,这样写会有一些潜在的问题:要去超类里面修改。我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可搭配新的行为。使得设计具有弹性,可以接受新的功能来应对改变的需求。
- 以DarkRoast对象开始
- 顾客想要摩卡,所以建立一个mocha对象,并用它将DarkRoast对象包起来
- 顾客想要奶泡,所以需要建立一个Whip装饰者,并用它将Mocha对象包起来。
- 调用最外圈的whip的cost就可以计算出价格。
装饰者模式,给爱用继承的人一个全新的设计眼界。
更多C++示例代码,请移步到本人的github。
设计模式,祝愿你把代码写成艺术。
6/13/2017 1:48:51 PM
阅读全文
0 0
- 设计模式(单一职责)——装饰者模式
- 装饰模式(单一职责)
- 设计模式(单一职责)——桥模式
- 设计模式——单一职责原则
- 设计模式——单一职责原则
- 设计模式——单一职责原则
- 设计模式——单一职责原则
- 设计模式——单一职责原则
- 设计模式—单一职责原则
- 设计模式—单一职责原则
- 设计模式原则—单一职责原则(二)
- 设计模式原则—单一职责原则(SRP)
- 设计模式-单一职责
- 设计模式--单一职责
- 【设计模式】单一职责模式
- 设计模式-单一职责模式
- 设计模式(一):单一职责原则
- 设计模式(一)单一职责原则
- 完美解决ScrollView嵌套SwipeMenuListView
- VC获得本机网络连接状态
- jmeter压测发送json报文中存在转义字符并参数化了某些变量导致发送至服务器端报文无法处理的解决
- 解决Jquery夸域名POST数据失败的方法
- 内存对齐 高位优先 从低地址到高地址
- 设计模式(单一职责)——装饰者模式
- 文件处理
- pthread_create传递参数
- J2EE系列之MyBatis学习笔记(二)-- mybatis配置
- Maven依赖中的scope详解
- QString与char *之间的转换
- js调试工具Console命令详解
- 电商网站秒杀系统如何设计
- React Native 项目常用第三方组件 很常用