# 装饰器模式允许我们在不修改原有类的基础上,动态地添加额外的功能。 # 就增加功能来说,装饰器模式比生成子类更为灵活。 # 餐吧的顾客可以选择为他们的咖啡添加额外的调料。 class Beverage: def __init__(self, description): self.description = description self.price = 0.0 def cost(self): return self.price class CondimentDecorator(Beverage): # 进行装饰 def __init__(self, beverage, description, price_increase): self.beverage = beverage self.description = f"{beverage.description}, {description}" self.price_increase = price_increase def cost(self): return self.beverage.cost() + self.price_increase # 使用装饰器模式 coffee = Beverage("Espresso") coffee_with_chocolate = CondimentDecorator(coffee, "Chocolate", 0.50)