开发者社区 问答 正文

在 SqlVisitor 抽象类中,为什么需要定义多个 visit 方法?

在 SqlVisitor 抽象类中,为什么需要定义多个 visit 方法?

展开
收起
不吃核桃 2024-07-31 13:04:42 41 分享 版权
1 条回答
写回答
取消 提交回答
  • 在 SqlVisitor 抽象类中,需要定义多个 visit 方法来对应 SQL 结构中的不同节点类型(如 SelectNode、FieldsNode、WhereNode 等)。这是因为访问者模式通过双分派(即对象结构的分派和访问者类的分派)来实现对不同类型节点的访问和操作。每个 visit 方法都对应一种节点类型,当 SqlNode 对象的 accept 方法被调用时,会根据实际对象的类型动态地选择并执行相应的 visit 方法。

    2024-07-31 13:44:17
    赞同 1 展开评论
问答地址: