Ruby中的访客模式,还是只使用一个块?
嘿那里,我已经阅读了关于何时/如何使用访问者模式的一些帖子,以及关于它的一些文章/章节,如果您正在遍历AST并且它是高度结构化的,并且您想要封装将逻辑转换为单独的“访问者”对象等.但是对于
Ruby来说,它似乎有点过分,因为你可以使用块来做几乎相同的事情.
我想使用Nokogiri的pretty_print xml.作者建议我使用访问者模式,这需要我创建一个FormatVisitor或类似的东西,所以我只能说“node.accept(FormatVisitor.new)”. 问题是,如果我想开始自定义FormatVisitor中的所有内容(例如,它允许您指定节点的选项卡方式,属性如何排序,属性如何间隔等等). >有一次,我希望节点每个嵌套级别有一个选项卡,并且属性可以按任何顺序排列 我有几个选择: >在构造函数中创建选项哈希(FormatVisitor.new({:tabs => 2}) 而不是必须构造一个FormatVisitor,设置值,并将其传递给node.accept方法,为什么不这样做:
这与我觉得访客模式看起来形成鲜明对比:
也许我的访客模式都错了,但从我在ruby中读到的内容来看,这似乎有些过分.你怎么看?无论哪种方式都适合我,只是想知道你们对它的看法. 非常感谢, 解决方法
我会选择简单而有效的方法.我不知道细节,但你写的与访客模式相比,看起来更简单.如果它也适合你,我会用它.就个人而言,我厌倦了所有这些技术,要求你创建一个巨大的相互关联的“网络”,只是为了解决一个小问题.
有人会说,是的,但是如果你使用模式来做,那么你可以涵盖许多未来的需求,等等等等.我说,现在做什么有效,如果有需要,你可以在将来进行重构.在我的项目中,几乎从未出现过,但这是一个不同的故事. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |