1,概述:
被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例
(2)代码:
Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加
一些功能,如下:
(3)总结:
装饰模式的应用场景:
①需要扩展一个类的功能
②动态的为一个对象增加功能,而且还能动态撤销(继承做不到这一点,
继承的功能都是静态的,不能动态删减)
③缺点:产生太多相似的对象,不易排错