书城计算机大话设计模式
11030400000208

第208章 5 装饰器模式优点和缺点

小A:“装饰器模式有什么优点?”

大B:“装饰器与继承的目的都是扩展对象的功能,但装饰器提供了比继承更大的灵活性,可以动态的决定是‘粘上’还是‘去掉’一个装饰。通过使用不同的具体装饰类和这些类的排列组合,可以创建出很多不同行为的组合。”

小A:“那装饰器模式有什么缺点哩?”

大B:“装饰器比继承关系使用更少的类,但比继承关系使用更多的对象,更多的对象会使查错变得更困难,特别是这些对象看上去很像的时候。”