visitor-pattern相关内容
如果我们查看bash源代码,特别是yacc语法,我们可以看到所有重定向都是这样定义的: redirection : GREATER WORD | LESS WORD | NUMBER GREATER WORD | NUMBER LESS WORD | REDIR_WORD GREATER WO
..
我需要一个像 字典 但是数据类型(TValue)从一个键变为另一个键. 我还需要遍历它. 解决方案 对于异构和类型安全的字典部分 Wilka 响应是一个好的开始. 诀窍是将类型放入键中. //////所有字典键的基类.//////键名对调试非常有用.///抽象类 HeterogeneousDictionaryKey
..
很多人使用 C++17/boost 变体的模式看起来与 switch 语句非常相似.例如:(来自 cppreference.com 的片段) std::variantv = ...;标准::访问(重载{[](auto arg) { std::cout
..
我已经寻找了几天来找到这个基于性能的问题的答案. 到目前为止,在挖掘 Internet 之后,我了解到有几种方法可以在 java 中使用枚举,在 这里.好吧,作为初学者,肯定会喜欢在 switch-case 语句中使用 Enums,它可以提供清晰的代码并更好地理解代码.但另一方面,我们也有一个 Visitor 模式 样式的枚举实现,它确保了类型安全性和可扩展性,讨论 这里. 话虽如此,回到
..
我的同事建议我编写一个访问者模式来导航 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
..
我想使用 lambda 内联对变体类型的访问.目前我有以下代码: struct Foo {boost::variant无功;模板void ApplyOptionals( T& ref, IL&& intOption , SL&& stringOption , VL&& vectorOption ) {如果 (var.wh
..
有很多关于将算法与类解耦的讨论.但是,有一件事没有解释. 他们像这样使用访问者 抽象类 Expr {公共 T accept(Visitorvisitor){returnvisitor.visit(this);}}类 ExprVisitor 扩展了访问者{公共整数访问(Num num){返回数值;}公共整数访问(总和){返回 sum.getLeft().accept(this)
..
我正在阅读关于访问者模式的信息,它看起来与 Double Dispatch 相同.两者有什么区别吗.这两个词的意思是一样的. 参考:http://www.vincehuston.org/dp/visitor.html 解决方案 简而言之 它们来自不同的概念,在一些本地不支持双分派的语言中,导致访问者模式作为连接两个(或更多)单分派的一种方式,以便有一个多分派代理. 长期
..
我对访问者模式及其用途感到非常困惑.我似乎无法想象使用这种模式或其目的的好处.如果可能的话,如果有人能用例子来解释那就太好了. 解决方案 从前... class MusicLibrary {私人设置收藏 ...公共集getPopMusic() { ... }公共集getRockMusic() { ... }公共集getElectronicaMusic()
..
我一直在博客中看到对访问者模式的引用,但我必须承认,我就是不明白.我阅读了 维基百科文章关于模式,我了解它的机制,但我仍然对当我使用它时. 作为最近才真正获得装饰器模式并且现在在任何地方都能看到它的用途的人,我也希望能够真正直观地理解这种看似方便的模式. 解决方案 我对访问者模式不是很熟悉.让我们看看我是否做对了.假设你有一个动物等级 class Animal { };狗类:公共动
..
我可以使用下面的流行方法完美地访问 Magento 之外的现有会话. require 'app/Mage.php';$mageRunCode = isset ( $_SERVER ['MAGE_RUN_CODE'] ) ?$_SERVER ['MAGE_RUN_CODE'] : '';$mageRunType = isset ( $_SERVER ['MAGE_RUN_TYPE'] ) ?$_S
..
使用 Delphi 2009 Enterprise,我在模型视图中为 GoF 访问者模式创建了代码,并将代码分成两个单元:一个用于域模型类,一个用于访问者(因为我可能需要其他单元用于不同的访问者实现,所有内容都在一个单元中?'大泥球'前面!) unit VisitorUnit;界面用途具体元素单元;类型IVisitor = 接口;IElement = 接口程序接受(访问者:IVisitor);结
..
我一直在尝试通过使用 C++ 模板来实现访问者模式来减少代码中样板的数量.到目前为止,我想出了这个: class BaseVisitor {上市:虚拟 ~BaseVisitor() {}};模板类访问者:公共 BaseVisitor {上市:虚拟无效访问(T&/* 可访问 */)= 0;};模板类可访问{上市:无效接受(访问者&访问者){访问者.visit(static_cast
..
我试图弄清楚如何实现我的 LEParserCfgVisitor 类,以便从已经用 JavaCC 生成的抽象语法树构建控制流图.我知道有些工具已经存在,但我正在努力为我的编译器决赛做准备. 我知道我需要一个数据结构来将图形保存在内存中,并且我希望能够在每个节点中保留 IN、OUT、GEN、KILL 等属性,以便能够进行控制流分析稍后. 我的主要问题是我还没有弄清楚如何将不同的块连接在一起
..
//创建一个扫描器,从传递给我们的输入流中读取CSLexer 词法分析器 = new CSLexer(new ANTLRFileStream(f));token.TokenSource = 词法分析器;//创建一个从扫描器读取的解析器CSParser parser = new CSParser(tokens);//从编译单元规则开始解析CSParser.compilation_unit_retur
..
我必须编写一个访问者模式来导航 AST.谁能告诉我更多我将如何开始写作?据我了解,AST 中的每个节点都会有访问()方法(?),该方法会以某种方式被调用(从哪里?).我的理解到此结束.为了简化一切,假设我有节点 Root、Expression、Number、Op,树看起来像这样: 根|操作(+)/\/\数(5) \操作(*)/\/\/\号码(2) 号码(444) 解决方案 Patternv
..
我的同事建议我编写一个访问者模式来导航 AST.谁能告诉我更多我将如何开始写作? 据我所知,AST 中的每个节点都会有 visit() 方法(?),它们会以某种方式被调用(从哪里?).我的理解到此结束. 为了简化一切,假设我有节点 Root、Expression、Number、Op 并且树看起来像这样: 根|操作(+)/\/\数(5) \操作(*)/\/\/\号码(2) 号码(44
..
我使用访问者设计模式来解决我们系统中的一个问题.作为如何实现它的参考,我使用了 DoFactory site 和 这个 YouTube 视频. 在 DoFactory 示例中,Visitor 使用返回类型为“void"的方法,而在 YouTube 视频中,作者使用“double". 我为什么问: 在向公司 CTO 展示解决方案后,他接受将其称为访问者,但他声称如果访问者不是 我的意思
..
我被卡住了:).我有两级层次结构,每个级别都有子节点.目标是使用这个结构来填充 gui 树.我正在尝试以通用方式访问变体成员的子节点.以下代码无法编译,使用 vs2013.我将感谢您的帮助和/或建议关于设计变更. #include "stdafx.h"#include #include #include #include 类基{};A类:公共基础{民众:std::vector>&lst(){ 返
..