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

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

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

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

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

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

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

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

“NodeB”实现类

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

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

“VisitorA”实现类

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

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

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

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

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

实际应用:

主要控制类对象“ObjectStructrue”

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

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

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

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

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

“被访问者”抽象类

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

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

设置一个“访问者”接口

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

总调度流程控制类

最后应用

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

  1. 23种设计模式(二十二)状态模式(阁瑞钛伦特软件-九耶实训)

    常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...

  2. 23种设计模式(十四)模板方法模式(阁瑞钛伦特软件-九耶实训)

    常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...

  3. 23种设计模式(十一)外观模式(阁瑞钛伦特软件-九耶实训)

    常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...

  4. 在Windows操作系统中安装MySQL8教程(一)(二)(阁瑞钛伦特软件—九耶实训)

    1.1 下载MySQL8数据库 (已上传) 打开网址: https://www.mysql.com 显示界面如图1-xx所示. 点击DOWNLOADS菜单,显示界面如图1-xx所示. 点击" ...

  5. Oracle使用OMS备份数据(阁瑞钛伦特软件-九耶实训)

    在oracle 中可以方便的把数据导出为文件,或者从文件导入.通过oracle的管理服务器(oracle management server,oms)可以方便的实现,整个操作过程中有很多地方需要解释说 ...

  6. 添加用户并配置读写权限(阁瑞钛伦特软件-九耶实训)

    1.3.1添加用户并授予读写权限 Step01:进入CMD控制台输入命令如图1.43所示. 图1.43 增加1个ghy账户并设置密码 参数-c就是创建password.ini文件,再创建1个用户时就不 ...

  7. IT行业人均年薪11万,阁瑞钛伦特软件分析程序员工资为什么这么高?

    在当代众多行业中,如果要问什么岗位发展最好.薪资最高? 相信80%的人会说程序员. 和工程师的耀眼形象不同,多数人眼里的程序员更接近于一群情趣干瘪的宅男,而非高智商高收入的精英群体. 客观而言,这些评 ...

  8. 备战面试日记(3.3) - (设计模式.23种设计模式之结构型模式)

    本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.9 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...

  9. 备战面试日记(3.2) - (设计模式.23种设计模式之创建型模式)

    本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.6 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...

最新文章

  1. python生成一段时间
  2. Java:由浅入深揭开 AOP 实现原理
  3. 打印表格_表格怎么打印出来
  4. 语音识别:从GMM-HMM到端到端
  5. (最优解法)46行代码AC_HDU1242 Rescue(DFS解法+BFS解法)
  6. 使用Telnet 在DS300上配置阵列
  7. Atitti 跨语言异常的转换抛出 java js
  8. unix下c语言recv函数,Linux send与recv函数详解
  9. SpringBoot+JWT+SpringSecurity对api进行授权保护
  10. 打开.mpp文件有感
  11. 【原创】《华杉讲透《孙子兵法》》阅读有感(三)
  12. Ubuntu安装ESPNET(搞了一个多月)
  13. 城市信息化重要载体“无线城市”
  14. 览器野史 UserAgent列传
  15. 【计算机算法】递归——循环日程表
  16. python学习——yield和yield from
  17. windows安装ROS
  18. 《情感分析、挖掘观点、情感和情绪》1
  19. Node交互式命令行工具开发——自动化文档工具
  20. 关于网络硬件配置出现问题,无法上网问题的解决

热门文章

  1. 攻防世界 逆向入门 game
  2. 云计算设计模式翻译(四):Competing Consumers Pattern(消费者竞争模式)
  3. BP神经网络模型用什么软件,bp神经网络数学模型
  4. 微软开启助力ChatGPT产品落地!
  5. 【协程】冷流flow详解
  6. 【WiFi IoT 套件】红黄蓝灯板的使用
  7. oracle exfsys 下 rlm$evtcleanup,记一次数据库无法增删改趋于HANG住状态的故障诊断和处理 -电脑资料...
  8. Google Code Jam Round2 A,B题解
  9. 消灭老鼠 有一只老鼠,在一个环形的田埂上挖了n个老鼠洞,这些洞也是连接为一个环状,我们要用泥土填满这些鼠洞,老鼠从第0号洞开始出现(第0号洞不填),然后依次按每间隔m个洞出现一次。我们要跟在老鼠后
  10. 异步电动机直接转矩matlab仿真,异步电动机直接转矩控制系统的MATLAB仿真