visitor-pattern相关内容

遍历异构和类型安全的字典

我需要一个像 字典 但是数据类型(TValue)从一个键变为另一个键. 我还需要遍历它. 解决方案 对于异构和类型安全的字典部分 Wilka 响应是一个好的开始. 诀窍是将类型放入键中. //////所有字典键的基类.//////键名对调试非常有用.///抽象类 HeterogeneousDictionaryKey ..
发布时间:2022-01-24 12:06:17 C#/.NET

Java Enums - Switch 语句与 Enums 上的访问者模式 - 性能优势?

我已经寻找了几天来找到这个基于性能的问题的答案. 到目前为止,在挖掘 Internet 之后,我了解到有几种方法可以在 java 中使用枚举,在 这里.好吧,作为初学者,肯定会喜欢在 switch-case 语句中使用 Enums,它可以提供清晰的代码并更好地理解代码.但另一方面,我们也有一个 Visitor 模式 样式的枚举实现,它确保了类型安全性和可扩展性,讨论 这里. 话虽如此,回到 ..
发布时间:2022-01-19 10:58:17 Java开发

如何用 Python 编写抽象语法树的访问者模式?

我的同事建议我编写一个访问者模式来导航 AST.谁能告诉我更多我将如何开始写它? 据我了解,AST 中的每个节点都会有 visit() 方法(?),它会以某种方式被调用(从哪里?).我的理解到此结束. 为了简化一切,假设我有节点 Root、Expression、Number、Op 并且树看起来像这样: 根|操作(+)/\/\号码(5)\操作(*)/\/\/\号码(2) 号码(444 ..

实现访客计数器

我是一个新手,正在使用 ASP .Net 2.0 和 C# 2005 开发一个网站.我想添加一个工具来计算编号.我网站的访问者.我已经收集了使用 Global.asax 添加此功能的基本信息.我通过在 system.web 部分下添加行“"对 Web.config 进行了修改. 我正在使用表格来记录访问者的数量.但我不知道如何完成任务.我的默认 Global.asax 文件带有不同的部分 A ..
发布时间:2021-12-30 16:20:49 C#/.NET

访问者模式与访问者模式之间的差异双发

我正在阅读关于访问者模式的信息,它看起来与 Double Dispatch 相同.两者有什么区别吗.这两个词的意思是一样的. 参考:http://www.vincehuston.org/dp/visitor.html 解决方案 简而言之 它们来自不同的概念,在一些本地不支持双分派的语言中,导致访问者模式作为连接两个(或更多)单分派的一种方式,以便有一个多分派代理. 长期 ..
发布时间:2021-12-22 08:48:06 其他开发

访问者模式的目的与示例

我对访问者模式及其用途感到非常困惑.我似乎无法想象使用这种模式或其目的的好处.如果可能的话,如果有人能用例子来解释那就太好了. 解决方案 从前... class MusicLibrary {私人设置收藏 ...公共集getPopMusic() { ... }公共集getRockMusic() { ... }公共集getElectronicaMusic() ..
发布时间:2021-12-22 08:42:21 Java开发

什么时候应该使用访问者设计模式?

我一直在博客中看到对访问者模式的引用,但我必须承认,我就是不明白.我阅读了 维基百科文章关于模式,我了解它的机制,但我仍然对当我使用它时. 作为最近才真正获得装饰器模式并且现在在任何地方都能看到它的用途的人,我也希望能够真正直观地理解这种看似方便的模式. 解决方案 我对访问者模式不是很熟悉.让我们看看我是否做对了.假设你有一个动物等级 class Animal { };狗类:公共动 ..
发布时间:2021-12-22 08:35:27 其他开发

Delphi Enterprise:如何在没有循环引用的情况下应用访问者模式?

使用 Delphi 2009 Enterprise,我在模型视图中为 GoF 访问者模式创建了代码,并将代码分成两个单元:一个用于域模型类,一个用于访问者(因为我可能需要其他单元用于不同的访问者实现,所有内容都在一个单元中?'大泥球'前面!) unit VisitorUnit;界面用途具体元素单元;类型IVisitor = 接口;IElement = 接口程序接受(访问者:IVisitor);结 ..
发布时间:2021-12-13 23:15:09 其他开发

使用 C++ 模板实现访问者模式

我一直在尝试通过使用 C++ 模板来实现访问者模式来减少代码中样板的数量.到目前为止,我想出了这个: class BaseVisitor {上市:虚拟 ~BaseVisitor() {}};模板类访问者:公共 BaseVisitor {上市:虚拟无效访问(T&/* 可访问 */)= 0;};模板类可访问{上市:无效接受(访问者&访问者){访问者.visit(static_cast ..
发布时间:2021-12-13 19:10:15 C/C++开发

使用 Java 从具有访问者模式的 AST 构建控制流图

我试图弄清楚如何实现我的 LEParserCfgVisitor 类,以便从已经用 JavaCC 生成的抽象语法树构建控制流图.我知道有些工具已经存在,但我正在努力为我的编译器决赛做准备. 我知道我需要一个数据结构来将图形保存在内存中,并且我希望能够在每个节点中保留 IN、OUT、GEN、KILL 等属性,以便能够进行控制流分析稍后. 我的主要问题是我还没有弄清楚如何将不同的块连接在一起 ..
发布时间:2021-11-26 17:54:54 Java开发

如何在 C# 中为抽象语法树编写访问者模式?

我必须编写一个访问者模式来导航 AST.谁能告诉我更多我将如何开始写作?据我了解,AST 中的每个节点都会有访问()方法(?),该方法会以某种方式被调用(从哪里?).我的理解到此结束.为了简化一切,假设我有节点 Root、Expression、Number、Op,树看起来像这样: 根|操作(+)/\/\数(5) \操作(*)/\/\/\号码(2) 号码(444) 解决方案 Patternv ..
发布时间:2021-11-26 17:41:56 C#/.NET

如何在 Python 中编写抽象语法树的访问者模式?

我的同事建议我编写一个访问者模式来导航 AST.谁能告诉我更多我将如何开始写作? 据我所知,AST 中的每个节点都会有 visit() 方法(?),它们会以某种方式被调用(从哪里?).我的理解到此结束. 为了简化一切,假设我有节点 Root、Expression、Number、Op 并且树看起来像这样: 根|操作(+)/\/\数(5) \操作(*)/\/\/\号码(2) 号码(44 ..

访问者设计模式——返回类型

我使用访问者设计模式来解决我们系统中的一个问题.作为如何实现它的参考,我使用了 DoFactory site 和 这个 YouTube 视频. 在 DoFactory 示例中,Visitor 使用返回类型为“void"的方法,而在 YouTube 视频中,作者使用“double". 我为什么问: 在向公司 CTO 展示解决方案后,他接受将其称为访问者,但他声称如果访问者不是 我的意思 ..
发布时间:2021-11-17 02:10:26 其他开发

boost::variant - 获取成员的向量属性

我被卡住了:).我有两级层次结构,每个级别都有子节点.目标是使用这个结构来填充 gui 树.我正在尝试以通用方式访问变体成员的子节点.以下代码无法编译,使用 vs2013.我将感谢您的帮助和/或建议关于设计变更. #include "stdafx.h"#include #include #include #include 类基{};A类:公共基础{民众:std::vector>&lst(){ 返 ..
发布时间:2021-11-16 23:21:12 C/C++开发