• 23种设计模式(二十三)访问者模式(阁瑞钛伦特软件-九耶实训)


    常说的设计模式是23种设计模式,分为3大类:

    • 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
    • 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
    • 行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。

    上次咱们说了“状态模式”,今天咱们来说“访问者模式”。

     

    “访问者模式”重点在于访问,需要两个角色:“访问者”和“被访问者”。

    “被访问者”要调用“访问者”的访问行为,从而输出“访问者”访问的信息。

    也就是说,“被访问者”是被动的,要通过“访问者”输出“被访问者”的信息。

    先定义,“被访问者”的抽象行为。

     

    “Node”是“被访问者”的抽象类

     “NodeB”实现类

     

     

    “accept”方法是调用“访问者”的行为去执行信息。

    “Visitor”是“访问者”的接口

     “VisitorA”实现类

    “visit”方法显示“Node”的信息。

    主要控制类“ObjectStructure”,用来确定“访问者”访问“被访问者”的流程控制

    “nodes”是List集合,用来添加“被访问者”节点。

    “action”方法是接收“访问者”访问List集合中的每一个“被访问者”节点。

    “add”方法添加“被访问者”节点的对象。

    实际应用:

    主要控制类对象“ObjectStructrue”

    添加了两个“被访问者”对象“NodeA”和“NodeB”

    执行“action”接受“VisitorA”“访问者”访问

    下面我们模拟一个实际场景。

    《西游记》中,孙悟空在天庭被封弼马温时,成天无所事事,除了放马,就是到处游玩。

    假设“访问者”是孙悟空,“被访问者”节点是游玩的地点。这样就更容易理解访问者模式的结构。

    “被访问者”抽象类

     

    第一个被访问的地点实现类——“东海龙宫”

     

     

    第二个被访问的地点——“凌霄宝殿”

     

    设置一个“访问者”接口

    访问者的实现类——孙悟空

     

     

    总调度流程控制类

    最后应用

  • 相关阅读:
    企业架构LNMP学习笔记33
    Kubernetes体系结构及其主要组件
    prometheus starting - 相识
    27岁想转行IT,还来的及吗?
    基于SSM的房屋租售网站
    【SA8295P 源码分析】126 - 摄像头 POC (Power over Coax) 同轴电缆供电技术原理分析
    用 LMDeploy 高效部署 Llama-3-8B,1.8倍vLLM推理效率
    《Vue.js 3移动应用开发实战》简介
    STM32H750之FreeRTOS学习--------(二)任务的创建和删除
    ISO27001认证办理流程及2022年补贴政策汇总
  • 原文地址:https://blog.csdn.net/m0_69234258/article/details/126422326