大话设计模式阅读笔记-装饰模式

1.装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。

大话设计模式阅读笔记-装饰模式

Component 是定义一个对象接口,可以给这些对象动态的添加职责,ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,单对于Component来说,是无需知道Decorator的存在的,至于ConcreteDecorator就是具体的装饰对象,起到给Component添加职责的功能。装饰模式是利用SetComponent来对对象进行包装,这样每个装饰对象的实现就和如何使用这个对象分离开了,每个装饰对象只关心自己的功能,不需要关心如何被添加到对象链当中。

2.装饰变种:如果只有一个ConcreteComponent对象需要被装饰,就可以不要Component类,Decorator类可以是ConcreteComponent的子类,同样的道理,如果只需要一个装饰类,那就没必要建立单独的Decorator抽象类了,直接ConcreteDecorator类继承ConcreteComponent类就可以了。增加Component和Decorator两个基类,是为了扩展,以后需要多个,针对接口编程,而不是针对实现编程

3.装饰模式的总结:

大话设计模式阅读笔记-装饰模式


大话设计模式阅读笔记-装饰模式