设计模式总结-装饰者模式
装饰者模式
装饰者是滥用继承的福音,我们使用装饰者就可以在不修改底层代码的情况下给对象赋予更多的功能。
咖啡店,当你想点一杯咖啡,要加冰,双倍奶,双倍糖,那么这个对象应该怎么定义,金额如何计算。
我们可以定义一个咖啡对象,然后使用集成到方式创建出多种咖啡的组合,然后每个组合一个价钱,这样的好处是清晰不耦合,但是坏处也很明显,创建的类太多了!那么此时使用装饰者模式就可以解决这样的问题。
重点
- 开放-关闭原则:对扩展开放对修改关闭,也就是不修改原有代码的情况下快速扩展。
- 使用组合而非继承:使用组合而非继承的方式能够在创建更少的类的情况下完成新功能的扩展
源码案例
使用HeaderFirst的案例:测试