Python访问者模式

访问者模式,一个物体针对不同的访问者,所展现的行为是不同的。

class Visitor(object):
    def __init__(self, type_):
        self.type_ = type_


class Obj(object):
    def __init__(self, visitor):
        self.visitor_type = visitor.type_
        self.sell_price = 100

    def show(self):
        if self.visitor_type == 'buyer':
            print('to buyer: it sell ¥', self.sell_price)
        elif self.visitor_type == 'seller':
            print('to seller: it cost ¥', self.sell_price * 0.8)
        else:
            print("undefined")


def main():
    seller = Visitor('seller')
    obj = Obj(seller)
    obj.show()
    buyer = Visitor('buyer')
    obj = Obj(buyer)
    obj.show()


if __name__ == '__main__':
    main()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 场景问题# 1.1 扩展客户管理的功能## 考虑这样一个应用:扩展客户管理的功能。 既然是扩展功能,那么肯定是...
    七寸知架构阅读 2,964评论 1 58
  • 1/有时我会感觉思想跳出肉体。 你好。爷爷看到你的来信了。 看得出,关于身边的人和事,你有很多自己的思考。关于命运...
    MABEL梅阅读 189评论 0 0
  • 微雨中带着清香,你楚楚可怜的样子美丽异常! 竹伞下跳动的眼眸,不安的看着前方。 在那里,有我和溪流轻声的流淌,笑声...
    白夜灵幽阅读 333评论 0 2
  • 姓名:杜秋瑞 公司:湖北小白象商贸有限公司 【日精进打卡第1天】 【知~学习】 《六项精进》2遍,共2遍 《大学》...
    杜秋瑞阅读 291评论 0 0