QY装饰模式研究报告.ppt

The Decorator Pattern (装饰模式) 实例背景 有这么一家咖啡连锁店,可以这样来形容其发展速度:如果今天在你吃午餐的小店边上有一家,明天在它的对面就会看到另一家。 关于咖啡的知识 咖啡种类 Houseblend:家常混合咖啡 Decaf:无咖啡因咖啡 Darkroast:黑咖(将咖啡豆深度烘培至接近暗黑) Espresso:,爱斯普利索咖啡(把粉末状的咖啡豆用蒸汽加压煮出来的浓咖啡),意大利浓咖啡 Latte:拿铁(意大利浓缩咖啡与牛奶的经典混合) Cappuccino:卡布奇洛(在偏浓的咖啡上,倒入以蒸汽发泡的牛奶) 咖啡调料 Mocha:摩卡(巧克力) milk: Soy:豆奶 Whip:起泡牛奶(经过搅打使奶油起泡) 开发咖啡点单系统 因为生意兴隆,他们决定将其点单系统计算机化,以应付繁忙的业务需要。 开始时他们设计的类图如下: 初始类图 问题… 除了咖啡,客人还可以选择一些调味品。每种调味品都要收取一些费用,所以这些也应该包含在点单系统之内。他们想通过每个类的cost()方法来实现。 结果是。。。 类爆炸!! 这显然是一个恶梦 试设想: 如果咖啡的价格发生变化 如果新出了一种咖啡调料 对系统开发人员来说意味着什么? 怎么办? 一种想法是,用实例变量和继承机制来解决各种调味品的问题 新方案中基类的类图 新设计方案的类图 基类的cos

文档评论(0)

1亿VIP精品文档

相关文档