DLR表达式与绑定机制解析
1. 表达式树修改与访问者模式
1.1 表达式树修改的挑战
在表达式树中,即使只修改一个节点也需要进行大量工作。修改树时主要涉及三个方面:
- 树本身(数据结构)
- 树的遍历(遍历树)
- 遍历树时每次遇到节点所执行的操作
1.2 通用访问者模式
访问者模式有两个类层次结构:
- 元素类层次结构 :代表数据结构
- 访问者类层次结构 :代表作用于数据结构的算法
客户端决定将哪些算法应用于哪些数据结构,该模式的核心是将数据结构和算法解耦。
| 类 | 方法 | 说明 |
|---|---|---|
| Element | Accept(Visitor visitor) | 接收访问者并调用其Visit方法 |
| Visitor | Visit(ElementA element)、Visit(ElementB element)等 | 针对每个Element子类的重载方法,可提供新的逻辑 |
以下是Element类中Accept方法的典型实现:
DLR表达式与绑定机制解析
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



