访问者中的堆栈状态是否会破坏访问者模式?

时间:2012-04-01 15:54:58

标签: visitor-pattern

我需要处理一种语言的AST,而树上的访问者只是很好地解决了它。但是有些功能需要我在访问者永久上下文中保留某种堆栈(已知变量的堆栈),随着访问的进行而扩展和减少。它是否打破了访客模式?

1 个答案:

答案 0 :(得分:2)

访问者可以在访问期间累积信息 - 实际上,访问实现是复杂操作可能需要的添加状态(例如,当表达式树节点彼此远离并且仍然需要彼此了解时)... 因此可以肯定地说,只要您不在受处理/访问的节点本身存储任何类型的信息,您就可以在访问者中存储状态(甚至以堆栈的形式存储)