装饰模式是对继承的有力补充,继承并不是万能的。
利用继承的思想来扩展功能,这样用,你会增加很多很多的子类。灵活性会非常差。
装饰类和被装饰类可以独立发展,而不会互相藕合。
装饰模式可以动态扩展一个实现类的功能,而继承是静态地给类增加功能。
装饰类有一个缺点:多层装饰比较复杂,就像剥洋葱一样,当你剥到最后的时候才发现原来问题出在最里面的一层,想象一下这样的工作量是不是相当的大。所以,尽量减少装饰类的数量,以便降低系统的复杂度。
装饰模式是对继承的有力补充,继承并不是万能的。
利用继承的思想来扩展功能,这样用,你会增加很多很多的子类。灵活性会非常差。
装饰类和被装饰类可以独立发展,而不会互相藕合。
装饰模式可以动态扩展一个实现类的功能,而继承是静态地给类增加功能。
装饰类有一个缺点:多层装饰比较复杂,就像剥洋葱一样,当你剥到最后的时候才发现原来问题出在最里面的一层,想象一下这样的工作量是不是相当的大。所以,尽量减少装饰类的数量,以便降低系统的复杂度。