设计原则 ——“类应该对拓展开发,对修改关闭”
”装饰者模式动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案“
在不改变原代码的基础上动态的为对象赋予新的行为…interesting
- 装饰者和被装饰者拥有相同的超类型
- 可以用一个或多个装饰者包装一个对象
- 在任何需要原始对象的地方,可以用装饰过的对象代替它
- 装饰者可以在所委托被装饰者对象的行为之前/之后 ,加上自己的行为,达到特定的目的
- 对象可以动态的被装饰
装饰者模式中的继承
- 在装饰者模式中,装饰者和被装饰者有共同的超类型,使用继承是为了获得“类型匹配”,而不是利用继承获取超类的行为
- 行为来自装饰者和基础组件,以及与其他装饰者之间的组合关系
- -
java中的装饰者模式