(1)装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(OCP);
(2)这里提到的动态的将新功能附加到对象 和 OCP 原则,下面使用代码的方式学习。
(1)装饰者模式就像打包一个快递;
(2)Component 主体:比如类似前面的 Drink
(3)ConcreteComponent 和 Decorator
① ConcreteComponent:具体的主体;比如前面的各个单品咖啡;
② Decorator:装饰者,比如各种调料;
(4)在如图的 Component 与 ConcreteComponent 之间,如果 ConcreteComponent 类很多,还可以设计一个缓冲层,将共有的部分提取出来,抽象层一个类。


原文:https://www.cnblogs.com/niujifei/p/14318621.html