第六章 穿什么有这么重要吗?—装饰模式

仅仅是个人学习笔记,不具备参考价值

这章有些地方对设计模式的说明比较难以理解,需要多读几遍,多揣摩才能理解的比较透彻。下面对书中难以理解的地方说明一下。

说明一

第六章 穿什么有这么重要吗?—装饰模式_第1张图片
在上面这句话中,继承了Component抽象类的类就具备了装饰和被装饰的行为,比如书中的例子用T恤去装饰人,在用西装去装饰T恤,T恤在这里既是装饰者,又是被装饰者。ConcreteDecorator是被装饰者。Decorator的子类是装饰者,也就说Decorator是装饰者类的抽象。Decorator类扩展了Component,主要增加了setComponent(Component c)方法用于传入被装饰对象(继承了Component抽象类的子类对象),覆盖了Component类的operation方法。"对于Component来说,无需知道Decorator的存在"可以这么理解:setComponent(Component c)方法的参数类型是Component而不是Decorator类型。

说明二

第六章 穿什么有这么重要吗?—装饰模式_第2张图片
这样去理解黑体字部分:如果被装饰对象只有一个ConcreteComponent类,可以把Component中的抽象方法移到ConcreteComponent中,那么Decorator就可以继承ConcreteComponent。根据自己的理解还是不建议这样合并,因为以后可能会有多个被装饰对象。T恤可以装饰人,西装可以装饰T恤,那有一天狗也需要穿衣服呢?

最后献上思维导图

第六章 穿什么有这么重要吗?—装饰模式_第3张图片


你可能感兴趣的:(第六章 穿什么有这么重要吗?—装饰模式)