定义
装饰器模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility),就扩展功能来说,装饰模式比生成子类实现更为灵活。
如何实现
同样,装饰器模式有两个重要角色:被装饰的组件和装饰器。
第一步:定义一个组件(Component)和装饰器(Decorator)共有抽象接口(协议),对外暴露出扩展的方法(operation);
其中抽象装饰器的构造函数需要传入共有的抽象类型参数进行初始化,且装饰器需要持有该类型的引用;
第二步:具体组件实现方法(operation)原始逻辑,通常是已经实现好了;具体装饰器在实现方法(opertaion)时,会添加一些扩展的逻辑,并会通过持有的组件引用执行(operation)原始逻辑。
第三步:客户端使用时负责创建具体的组件和装饰器,而且由于组件和装饰器具有同样的上层抽象接口,所以可以嵌套使用多个装饰器来扩展组件的原始操作逻辑。
网友评论