在原有类的基础上,当我们需要某些新的功能时,我们通常经过继承的方式,这样既可以继承父类的方法,又可以添加新的方法,满足需求。但这种方式是静态编码的方式,如果已经有了对象,通过这种方式不能改变已近产生的对象的方法,这样就引入了装饰者模式,装饰者通过不断为对象添加新的特性和方法,满足需求。
装饰者模式:动态的给对象添加某些功能或者特性,而不用额外的写方法到原有的类中。
装饰者主要的角色:
抽象组件角色:定义一个规范的组件
具体组件角色:定义具体被装饰的组件
抽象装饰者:维持一个指向组件的抽象装饰者
具体装饰者:具体的装饰者