(1.8)--第5.3章-装饰者模式软件设计与体系结构.ppt
《(1.8)--第5.3章-装饰者模式软件设计与体系结构.ppt》由会员分享,可在线阅读,更多相关《(1.8)--第5.3章-装饰者模式软件设计与体系结构.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5.3章 装饰者模式1星巴克咖啡订单管理系统管理、计算各种饮料的售价。Espresso浓缩咖啡浓缩咖啡HouseBlend家常咖啡家常咖啡DarkRoast深焙咖啡深焙咖啡Decaf脱咖啡因咖啡脱咖啡因咖啡Mocha摩卡摩卡Milk蒸奶蒸奶Ice冰冰第5.3章 装饰者模式2实现1第5.3章 装饰者模式3实现1类爆炸调料的增加/删除调料价格的修改第5.3章 装饰者模式4实现2使用实例变量和继承,跟踪这些调料第5.3章 装饰者模式5实现2第5.3章 装饰者模式6问题:实现cost方法第5.3章 装饰者模式7当哪些因素改变时会影响这个设计?调料价钱的改变会使我们更改现有代码。一旦出现新的调料,我们
2、就需要加上新的方法,并改变超类中的cost()方法。以后可能会开发出新饮料,对于这些饮料而言(冰茶),某些调料可能并不适合,但是在这个设计方式中,Tea子类仍将继承那些不合适的方法,比如:hasWhip()。如何顾客想要双倍摩卡,怎么办?第5.3章 装饰者模式8设计原则(Open-ClosedPrinciple)类应该对扩展开放,对修改关闭。我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可搭配新的行为。如能实现这样的目标,其好处在于:这样的设计具有弹性,可以应对改变,可以接受新的功能来应对改变的需求。如何让设计的每个部分都遵循开放-关闭原则?这通常是无法做到的。要让OO设计同时具有开
3、放性和关闭性,又不修改现有的代码,需要花费许多时间和努力。一般来说,我们没有足够的精力把设计的每个部分都这么设计,这可能只是一种浪费。遵循开放-关闭原则,通常会引入新的抽象层次,增加代码的复杂度。你需要把注意力集中在设计中最有可能改变的地方,然后应用开放-关闭原则。第5.3章 装饰者模式9星巴克咖啡订单管理系统使用装饰者模式以饮料(Beverage)为主体,然后在运行时以调料(Condiment)来装饰(decorate)饮料比如,顾客想要摩卡和奶泡深焙咖啡,那么:取出一个深焙咖啡(DarkRoast)对象以摩卡(Mocha)对象装饰它以奶泡(Whip)对象装饰它调用cost方法,并依赖委托(
4、delegrate)将调料的价格加上去第5.3章 装饰者模式101.以DarkRoast对象开始2.顾客需要摩卡(Mocha),所以建立一个Mocha对象,并用它将DarkRoast对象包起来第5.3章 装饰者模式113.顾客也想要奶泡(Whip),所以建立一个Whip装饰者,并用它将Mocha对象包起来第5.3章 装饰者模式124.通过调用最外圈装饰者(Whip)的cost即可计算饮料价格。第5.3章 装饰者模式13第5.3章 装饰者模式14问题:如果有一张订单:如果有一张订单:“双倍摩卡双倍摩卡豆浆豆浆奶泡奶泡拿铁拿铁咖啡咖啡”,应该如何进行设计?,应该如何进行设计?第5.3章 装饰者模式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1.8 5.3 装饰 模式 软件设计 体系结构
限制150内