We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 86e3d3f commit c34424fCopy full SHA for c34424f
source/c08/p22_implementing_visitor_pattern_without_recursion.rst
@@ -1,20 +1,20 @@
1
============================
2
-8.22 不用递归实现观察者模式
+8.22 不用递归实现访问者模式
3
4
5
----------
6
问题
7
8
-你使用观察者模式遍历一个很深的嵌套树形数据结构,并且因为超过嵌套层级限制而失败。
9
-你想消除递归,并同时保持观察者编程模式。
+你使用访问者模式遍历一个很深的嵌套树形数据结构,并且因为超过嵌套层级限制而失败。
+你想消除递归,并同时保持访问者编程模式。
10
11
|
12
13
14
解决方案
15
16
通过巧妙的使用生成器可以在树遍历或搜索算法中消除递归。
17
-在8.21小节中,我们给出了一个观察者类。
+在8.21小节中,我们给出了一个访问者类。
18
下面我们利用一个栈和生成器重新实现这个类:
19
20
.. code-block:: python
@@ -53,7 +53,7 @@
53
def generic_visit(self, node):
54
raise RuntimeError('No {} method'.format('visit_' + type(node).__name__))
55
56
-如果你使用这个类,也能达到相同的效果。事实上你完全可以将它作为上一节中的观察者模式的替代实现。
+如果你使用这个类,也能达到相同的效果。事实上你完全可以将它作为上一节中的访问者模式的替代实现。
57
考虑如下代码,遍历一个表达式的树:
58
59
0 commit comments