「设计模式」 装饰者模式
背景:不必改变原类文件和使用继承的情况下,动态的扩展一个对象的的功能。 方案:利用子对象,委派
定义:
角色:
油漆工(decorator)是用来刷油漆的
被修饰者decoratee是被刷油漆的对象
实现:“实现被装饰者类—定义被装饰者对象—-使用被装饰者对象产生装饰者对象”(有多种方式)
案例:咖啡
特定场景下才用;
说明:
装饰者与被装饰者具有相同的类型
可以用多个装饰者装饰一个对象
由于装饰者与被装饰者具有相同的类型,我们可以用装饰后的对象代替原来的对象。
装饰者在委派它装饰的对象作某种处理时,可以添加上自己的行为(功能扩展)(在委派之前或/和之后)。
对象可以在任何时候被装饰,因此我们能在运行时动态的装饰对象。
Comments