装饰者模式:动态地给一个对象添加额外的职责。
使用设计者模式相比用生成子类方式达到功能的扩充显得更为灵活。
原理图:
1.Component是基类,通常是抽象类或者接口,用来规范接受附加职责(Decorater)的对象(ConcreteComponent)。
2.ConcreteComponent,是Component的子类,用来接受附加职责的对象,即被装饰者。
3.Decorater,抽象装饰者,与被装饰者共同继承同一个接口。
4.ConcreteDecorater,继承于Decorater,具体装饰者。由于ConcreteDecorater是Component的子类,那么可以通过添加新的方法,可以添加附加职责,即装饰。同时,ConcreteDecorater类应该持有Component引用类型的属性。