对装饰器模式的理解
假如现在有一个抽象的Food类
Food
-price:float
+getPrice():float
+cost():float
然后有一个Noode类是food类的实现类,实现了cost方法
现在再添加一个新的抽象装饰类继承了Food类,
再实现一个具体的装饰类,实现上面的抽象装饰类
这样,每次new 装饰类,都要传一个Food类对象,将底层要修饰的Food类一层层的包裹起来

这样,每一层装饰器各尽其职,将最核心的food包裹起来,而又不回影响到内层food的逻辑,符合开闭原则
在遇到类是final无法扩展时,也可以使用包装器模式

浙公网安备 33010602011771号