美文网首页
11. Decorator模式

11. Decorator模式

作者: 何大炮 | 来源:发表于2019-02-02 15:52 被阅读0次

场景

王大叔的大伯开了一家店,这家店在打印发票的时候,有的时候要打印个体名,有的时候要打印单位名,有的时候要时间。因为这个功能还在增加,所以王大叔想改进一下发票的打印程序,使这些功能能简单地加上去。
于是他写下了下列代码:

class TaxBill:
    def __init__(self, amount):
        self.amount = amount


class UserNameTaxBill:
    def __init__(self, tax_bill):
        self.tax_bill = tax_bill

    def print_user_name(self, name):
        print(name)


class TimeTaxBill:
    def __init__(self, tax_bill):
        self.tax_bill = tax_bill

    def print_time(self, time):
        print(time)

总结

意图:动态地给一个对象添加一些额外的责任。就增加功能来说,Decorator模式比生成子类更加灵活。
问题:要使用的对象将执行所需的基本功能。但是,可能需要为这个对象将添加某些功能,这些附加功能可能发生在对象的基本功能之前或者之后。
工作原理:创建始于Decorator对象终于原对象的一个对象链。
解决方案:无需创建子类,而扩展一个对象的功能。

相关文章

网友评论

      本文标题:11. Decorator模式

      本文链接:https://www.haomeiwen.com/subject/dsussqtx.html