在星巴克咖啡中,随意的点取咖啡种类以及配料的场景,如果使用传统的逻辑控制,产出的将会是一片非常不优雅的代码,而几乎每个例子中都会使用这样的一个场景,来引出装饰者模式的介绍。
装饰者模式通常有着如下的特点:
1、装饰对象和被装饰对象通常有着相同的接口,实现相同的操作;
2、装饰者对象中要含有被装饰对象的实例;
3、装饰者只是增加了附加功能,而不会去更改被装饰对象的实现逻辑;
从上述的描述中,我们可以抽象一下几个领域模型:
1、共同的接口,装饰者和被装饰者会针对相同的应用场景进行逻辑功能的控制,所以势必需要一个共同的接口,来定义特定的解决问题的场景方法。
2、抽象组件。这个可以是被装饰者的抽象父类,这里其实是可以作为“模板模式”的一个切入点
3、抽象的装饰者,抽象了装饰者的通用特征,比如装载的被装饰对象。
小练习:
1、定义通用接口
2、定义被装饰者抽象父类
注意上述的获取装饰对象数量和设置装饰对象数量的方法纯属于本次测试使用,严格意义上讲,或许放入抽象接口不太适合
3、定义装饰者抽象父类
看看他们的实现:
测试方法
执行结果
noOneCompnent
add NoOneDecorator!
add NoTwoDecorator!
装饰者的数量:2
分享到:
相关推荐
微信小程序星巴克咖啡,手机端界面布局设计源码下载,可直接部署。
星巴克咖啡饮品网页模板是一款咖啡休闲饮料会所网站模板下载。
星巴克和瑞幸咖啡商业模式与营销分析.doc
大学生静态网页设计期末作业—HTML+CSS制作星巴克咖啡静态网页设计.zip 95分以上必过项目,下载即用,无需修改。小白也可实战。 大学生静态网页设计期末作业—HTML+CSS制作星巴克咖啡静态网页设计.zip 95分以上必过...
星巴克咖啡休闲餐饮网站模板_星巴克 棕色 咖啡 休闲 餐饮 宽屏 bootstrap 手机 响应式 幻灯 大图.zip星巴克咖啡休闲餐饮网站模板_星巴克 棕色 咖啡 休闲 餐饮 宽屏 bootstrap 手机 响应式 幻灯 大图.zip
2016-2017年美国星巴克单杯咖啡销售额.xls
星巴克咖啡New CRM建设交流
星巴克咖啡休闲餐饮网站模板_星巴克 棕色 咖啡 休闲 餐饮 宽屏 bootstrap 手机 响应式 幻灯 大图.rar
星巴克咖啡休闲餐饮网站模板_星巴克 棕色 咖啡 休闲 餐饮 宽屏 bootstrap 手机 响应式 幻灯 大图_htm.rar
餐饮-深度复盘星巴克成长路径:咖啡 vs.高端现制茶饮,星巴克 vs.奈雪.pdf
星巴克咖啡的直营经济starbucks.pptx
星巴克咖啡休闲餐饮网站模板8917
初中语文文摘社会星巴克咖啡在中国
网上咖啡下单系统,包括虚拟钱包,支持购物车功能,适用初级开发者使用
基于五力模型的瑞幸咖啡与星巴克竞争力比较与启示_彭晓丽.caj
会随机出现客户进行排队,然后进行点餐,然后根据用户提出的要求进行调配。如果调配正确,则获取收益,如果调配失败,这收取愤怒值。最后可以查看历史成绩。资源包含:项目源代码、项目运行演示视频
浅谈星巴克盈利模式.doc
微信小程序 星巴克中国 (源码)微信小程序 星巴克中国 (源码)微信小程序 星巴克中国 (源码)微信小程序 星巴克中国 (源码)微信小程序 星巴克中国 (源码)微信小程序 星巴克中国 (源码)微信小程序 星巴克中国 (源码)微信...
基于ssm的星巴克咖啡店管理系统论文