定义
装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
在了解装饰者模式前,需要了解一下开放-关闭原则:
类应该对扩展开发,对修改关闭。
如果没有装饰者模式,对类的扩展通常需要使用继承来完成。继承容易产生很多不必要的数据,而且无法动态的进行扩展。
实现原理
定义抽象类或者接口,让被装饰者组件继承。定义装饰者也继承抽象类或者接口,这样保持被装饰者和装饰者类型一致。在装饰者中设置成员变量,类型为抽象类或者接口。
装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
在了解装饰者模式前,需要了解一下开放-关闭原则:
类应该对扩展开发,对修改关闭。
如果没有装饰者模式,对类的扩展通常需要使用继承来完成。继承容易产生很多不必要的数据,而且无法动态的进行扩展。
定义抽象类或者接口,让被装饰者组件继承。定义装饰者也继承抽象类或者接口,这样保持被装饰者和装饰者类型一致。在装饰者中设置成员变量,类型为抽象类或者接口。
转载于:https://my.oschina.net/zhanlzy/blog/3078002