这是装饰模式的一个例子吗?

时间:2016-11-20 11:03:19

标签: python design-patterns

这是我在查看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()

0 个答案:

没有答案