23种设计模式(二十三)访问者模式(阁瑞钛伦特软件-九耶实训)
常说的设计模式是23种设计模式,分为3大类:
- 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
- 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
- 行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。
上次咱们说了“状态模式”,今天咱们来说“访问者模式”。
“访问者模式”重点在于访问,需要两个角色:“访问者”和“被访问者”。
“被访问者”要调用“访问者”的访问行为,从而输出“访问者”访问的信息。
也就是说,“被访问者”是被动的,要通过“访问者”输出“被访问者”的信息。
先定义,“被访问者”的抽象行为。
“Node”是“被访问者”的抽象类
“NodeB”实现类
“accept”方法是调用“访问者”的行为去执行信息。
“Visitor”是“访问者”的接口
“VisitorA”实现类
“visit”方法显示“Node”的信息。
主要控制类“ObjectStructure”,用来确定“访问者”访问“被访问者”的流程控制
“nodes”是List集合,用来添加“被访问者”节点。
“action”方法是接收“访问者”访问List集合中的每一个“被访问者”节点。
“add”方法添加“被访问者”节点的对象。
实际应用:
主要控制类对象“ObjectStructrue”
添加了两个“被访问者”对象“NodeA”和“NodeB”
执行“action”接受“VisitorA”“访问者”访问
下面我们模拟一个实际场景。
《西游记》中,孙悟空在天庭被封弼马温时,成天无所事事,除了放马,就是到处游玩。
假设“访问者”是孙悟空,“被访问者”节点是游玩的地点。这样就更容易理解访问者模式的结构。
“被访问者”抽象类
第一个被访问的地点实现类——“东海龙宫”
第二个被访问的地点——“凌霄宝殿”
设置一个“访问者”接口
访问者的实现类——孙悟空
总调度流程控制类
最后应用
23种设计模式(二十三)访问者模式(阁瑞钛伦特软件-九耶实训)相关推荐
- 23种设计模式(二十二)状态模式(阁瑞钛伦特软件-九耶实训)
常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...
- 23种设计模式(十四)模板方法模式(阁瑞钛伦特软件-九耶实训)
常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...
- 23种设计模式(十一)外观模式(阁瑞钛伦特软件-九耶实训)
常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...
- 在Windows操作系统中安装MySQL8教程(一)(二)(阁瑞钛伦特软件—九耶实训)
1.1 下载MySQL8数据库 (已上传) 打开网址: https://www.mysql.com 显示界面如图1-xx所示. 点击DOWNLOADS菜单,显示界面如图1-xx所示. 点击" ...
- Oracle使用OMS备份数据(阁瑞钛伦特软件-九耶实训)
在oracle 中可以方便的把数据导出为文件,或者从文件导入.通过oracle的管理服务器(oracle management server,oms)可以方便的实现,整个操作过程中有很多地方需要解释说 ...
- 添加用户并配置读写权限(阁瑞钛伦特软件-九耶实训)
1.3.1添加用户并授予读写权限 Step01:进入CMD控制台输入命令如图1.43所示. 图1.43 增加1个ghy账户并设置密码 参数-c就是创建password.ini文件,再创建1个用户时就不 ...
- IT行业人均年薪11万,阁瑞钛伦特软件分析程序员工资为什么这么高?
在当代众多行业中,如果要问什么岗位发展最好.薪资最高? 相信80%的人会说程序员. 和工程师的耀眼形象不同,多数人眼里的程序员更接近于一群情趣干瘪的宅男,而非高智商高收入的精英群体. 客观而言,这些评 ...
- 备战面试日记(3.3) - (设计模式.23种设计模式之结构型模式)
本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.9 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...
- 备战面试日记(3.2) - (设计模式.23种设计模式之创建型模式)
本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.6 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...
最新文章
- python生成一段时间
- Java:由浅入深揭开 AOP 实现原理
- 打印表格_表格怎么打印出来
- 语音识别:从GMM-HMM到端到端
- (最优解法)46行代码AC_HDU1242 Rescue(DFS解法+BFS解法)
- 使用Telnet 在DS300上配置阵列
- Atitti 跨语言异常的转换抛出 java js
- unix下c语言recv函数,Linux send与recv函数详解
- SpringBoot+JWT+SpringSecurity对api进行授权保护
- 打开.mpp文件有感
- 【原创】《华杉讲透《孙子兵法》》阅读有感(三)
- Ubuntu安装ESPNET(搞了一个多月)
- 城市信息化重要载体“无线城市”
- 览器野史 UserAgent列传
- 【计算机算法】递归——循环日程表
- python学习——yield和yield from
- windows安装ROS
- 《情感分析、挖掘观点、情感和情绪》1
- Node交互式命令行工具开发——自动化文档工具
- 关于网络硬件配置出现问题,无法上网问题的解决
热门文章
- 攻防世界 逆向入门 game
- 云计算设计模式翻译(四):Competing Consumers Pattern(消费者竞争模式)
- BP神经网络模型用什么软件,bp神经网络数学模型
- 微软开启助力ChatGPT产品落地!
- 【协程】冷流flow详解
- 【WiFi IoT 套件】红黄蓝灯板的使用
- oracle exfsys 下 rlm$evtcleanup,记一次数据库无法增删改趋于HANG住状态的故障诊断和处理 -电脑资料...
- Google Code Jam Round2 A,B题解
- 消灭老鼠 有一只老鼠,在一个环形的田埂上挖了n个老鼠洞,这些洞也是连接为一个环状,我们要用泥土填满这些鼠洞,老鼠从第0号洞开始出现(第0号洞不填),然后依次按每间隔m个洞出现一次。我们要跟在老鼠后
- 异步电动机直接转矩matlab仿真,异步电动机直接转矩控制系统的MATLAB仿真