【文件属性】:
文件名称:实现访问者模式-华为云大数据中台架构分享
文件大小:5.68MB
文件格式:PDF
更新时间:2021-06-11 11:14:02
Python cookbook 中文 参考
8.21 实现访问者模式
问题
你要处理由大量不同类型的对象组成的复杂数据结构,每一个对象都需要需要
进行不同的处理。 比如,遍历一个树形结构,然后根据每个节点的相应状态执
行不同的操作。
解决方案
这里遇到的问题在编程领域中是很普遍的,有时候会构建一个由大量不同对象
组成的数据结构。 假设你要写一个表示数学表达式的程序,那么你可能需要定
义如下的类:
class Node:
pass
class UnaryOperator(Node):
def __init__(self, operand):
self.operand = operand
class BinaryOperator(Node):
def __init__(self, left, right):
self.left = left
self.right = right
class Add(BinaryOperator):
pass
class Sub(BinaryOperator):
pass
class Mul(BinaryOperator):
pass