|
|
1
9
SAX解析器是一种访问者。为了避免向方法中添加返回值,可以使用堆栈:
|
|
|
2
1
查看的源代码 THIS 编译器。我认为那个人使用了访客模式。 |
|
|
3
0
警告:我还没读过那本书。 该方法可以是空类型的,但在Java中(它是为该书编写的),它也是对象的一部分。因此,visitor方法可以在局部成员变量中构建结构,从而在调用之间维护必要的上下文。 因此,例如,您的打印访问者将追加到作为成员变量(或创建访问者对象的方法中的最终本地变量)的StrugBuudor中,这在爪哇相当常见,其中创建小的匿名内部类对象是一种常见习惯。 在Python中,同样可以让visitor方法访问非方法局部变量来维护上下文和构建结构。例如,封闭物或小物体。 update——下面的注释中作为示例添加的一小部分代码
或
第一个是更漂亮的(尽管仍然是糟糕的注释示例代码),但第二个则允许您保留void返回类型(如果确实需要的话)。 |