[img]/upload/attachment/122591/90a2ff10-08a0-3ffd-8594-f198bff3858c.png[/img]
定义:动态地附加责任到对象上。若要扩展功能,装饰者提供了比继承更有弹性的方案。
缺点是:可能引入很多小的类,使用者看起来麻烦。可以参考“工厂模式”和“生成器模式”
设计原则: 对扩展开放,对修改封闭。
应用场合:新巴兹咖啡,java的IO
Component可以是接口,也可以是类。主要参考代码遗留
decorator继承了component,主要是为了保证“类型匹配”,在后面可以用来装饰component。而不是为了继承行为,行为是要拿来修改的。
定义:动态地附加责任到对象上。若要扩展功能,装饰者提供了比继承更有弹性的方案。
缺点是:可能引入很多小的类,使用者看起来麻烦。可以参考“工厂模式”和“生成器模式”
设计原则: 对扩展开放,对修改封闭。
应用场合:新巴兹咖啡,java的IO
Component可以是接口,也可以是类。主要参考代码遗留
decorator继承了component,主要是为了保证“类型匹配”,在后面可以用来装饰component。而不是为了继承行为,行为是要拿来修改的。