设计模式学习专栏四--------装饰者模式

2019-03-11  本文已影响0人  你的头发真的好长

设计模式学习专栏四--------装饰者模式

场景


设计星巴兹咖啡, 主体(DarkRoast等) + 配料 (摩卡,奶泡等) , 顾客在购买咖啡时, 也可以要求在其中加入各种调料, 如蒸奶(Steamed Milk) , 豆浆(Soy) , 摩卡(Mocha) 或者奶泡. 星巴兹会根据所加入的调料收取不同的费用.所以 订单系统必须考虑到这些调料部分

刚开始的实现方式

思路: 为每一种 主体+配料的搭配生成一个类, 然后计算价格

第一次重构后的设计

使用布尔值来定义 该主体咖啡是否加入某配料

image

如何解决


image

装饰者模式总览


定义:动态地将责任附加到对象上.想要扩展功能,装饰者提供有别于继承的另一种选择(组合)

核心代码部分

image

真实世界的装饰者: Java I/O

参考

​ 书籍: HeadFirst设计模式

​ 代码参考地址: 我就是那个地址

上一篇 下一篇

猜你喜欢

热点阅读