优点:
1、装饰类和被装饰类可以独立发展,而不会相互耦合
2、装饰模式是继承关系的一个替代解决反正,装饰类Decorator,不管装饰多少层,返回的对象还是Component,实现的还是父子关系。
3、装饰类可以动态扩展一个实现类的功能。
缺点:
1、多层装饰比较复杂
使用场景:
1、需要扩展一个类的功能,给一个类添加附加的功能。
2、需要动态地给一个对象增加功能,这些功能可以动态的撤销。
3、需要为一批的兄弟类进行改装或加装功能,首选装饰模式。
补充:
装饰模式与继承:
继承是静态拓展应用类,装饰可以动态扩展应用类,当继承关系超过两层 说明设计是有问题的,先考虑一下装饰。