对装饰器模式的理解

假如现在有一个抽象的Food类

Food

-price:float

+getPrice():float

+cost():float

然后有一个Noode类是food类的实现类,实现了cost方法

现在再添加一个新的抽象装饰类继承了Food类,

再实现一个具体的装饰类,实现上面的抽象装饰类

这样,每次new 装饰类,都要传一个Food类对象,将底层要修饰的Food类一层层的包裹起来

这样,每一层装饰器各尽其职,将最核心的food包裹起来,而又不回影响到内层food的逻辑,符合开闭原则

在遇到类是final无法扩展时,也可以使用包装器模式

 

posted @ 2022-07-26 18:23  dronff  阅读(25)  评论(0)    收藏  举报