这是我在查看this答案后收集装饰器模式在Python中的工作方式。你能帮我理解它是不是Decorator模式的全部内容吗?
在这里,披萨配有浇头。使用链中使用的函数添加浇头(装饰)。价格在装修完成后更新,最后返回具有最终价格的Pizza对象,然后订购。
def api_send_order(pizza):
print('Ordered pizza for '+str(pizza.price)+' with toppings of '+str(pizza.toppings))
return True
# designed:
class Pizza():
def __init__(self):
self.price = 100
self.toppings = list()
def order(self):
return api_send_order(self)
def mushroom_topped(pizza):
pizza.price += 20
pizza.toppings.append('mushroom')
return pizza
def extracheese_topped(pizza):
pizza.price += 10
pizza.toppings.append('extra-cheese')
return pizza
# used as:
mushroom_topped(extracheese_topped(Pizza())).order()