装饰器模式(decorator)是为了更好的动态的为原对象实例添加或修改功能的模式。
Java IO的一系列类就是使用装饰器模式来进行的设计的。所以也涉及到装饰器模式的缺点,就是可能创造会很多类,有时显得不过简单,并不符合There is only one way to do thing的思维,当然java的设计思想也不是这个。
装饰器模式主要特点有:
- 让装饰器接口和实例接口继承同一接口,如果只有一种基础实例或装饰器实例,可以分别直接继承,而不通过接口继承。
- 在装饰类设计复制构造函数接受一个基类接口类实例,使内部对象引用指向它。
装饰器模式使用的时候要注意面向对象设计原则。虽然是常用设计模式,不过也是双刃剑