C++ 访问者模式

本文详细介绍了C++中的访问者模式,包括模式结构、优缺点、适用场景和案例分析。访问者模式允许在不修改元素类的情况下增加新的操作,将访问行为集中在一个访问者对象中。文章通过西安旅游的案例展示了如何实现访问者模式,游客和清洁工作为访问者,景点作为被访问元素,西安作为对象结构。通过代码实例,展示了如何创建访问者、元素和具体访问者类。
摘要由CSDN通过智能技术生成

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

访问者模式(Visitor Pattern)表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。

模式结构

UML 结构图:

在这里插入图片描述

  • Vistor(访问者):为对象结构中每一个 ConcreteElement 声明一个 visit() 操作,从这个操作的名称或参数类型可以清楚知道需要访问的具体元素的类型。
  • ConcreteVisitor(具体访问者):实现每个由 Visitor 声明的操作。
  • Element(元素):定义一个 accept() 操作,它通常以一个 Vistor 作为参数。
  • ConcreteElement(具体元素):实现 accept() 操作,通过调用 Visitor 的 visit() 方法来实现对元素的访问。
  • ObjectStructure(对象结构):能够枚举它的元素,同时提供一个高层的接口,以允许访问者访问它的元素。

优缺点

优点:

    • 7
      点赞
    • 10
      收藏
      觉得还不错? 一键收藏
    • 打赏
      打赏
    • 2
      评论
    评论 2
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    一去丶二三里

    有收获,再打赏!

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值