【发布时间】:2015-11-09 04:46:06
【问题描述】:
在 Kotlin 中实现 visitor pattern 是否有任何技巧或常用方法?任何对初学者来说可能不明显但会导致代码更简洁或有条理的东西。
为澄清而编辑:我有一个 AST,其中包含许多 (~30) 类型的节点。目前,每个类都实现了自己的 print() 方法,我想将其分解为单独的 Printer 类。有了访问者模式,添加其他 AST 遍历类会更简洁,其中会有几个。
【问题讨论】:
-
您是否要求某人代表您为 Kotlin 编写示例访问者模式?这个问题很宽泛、开放式,很可能应该被标记为结束。
-
不,我只是在问如何以我仍在学习的语言惯用地实现特定模式——仅此而已。
-
发布您对它的最佳猜测,让我们帮助您调整它。可能您只需将 lambda 传递给将遍历的节点并在访问节点时回调 lambda。从那里开始,发布代码,然后我们可以从那里提供帮助。
-
好的,鉴于我对您的类层次结构以及哪些问题发挥作用一无所知,因此我采用了一般方法来回答您的问题。见下文。