DLR表达式与绑定机制深入解析
1. 表达式树修改挑战与Visitor模式
在处理表达式树时,哪怕只修改其中一个节点,也需要进行大量的工作。修改树时,主要涉及三个方面:树本身(即数据结构)、树的遍历以及遍历过程中对每个节点执行的操作。为解决这一问题,Visitor设计模式应运而生。
1.1 通用Visitor模式
Visitor模式包含两个类层次结构:Element类层次结构代表数据结构,Visitor类层次结构代表作用于这些数据结构的算法。Client则负责决定将哪些算法应用于哪些数据结构,该模式的核心在于将数据结构和算法解耦。
以下是通用Visitor模式的类图结构:
classDiagram
class Client
class Element {
+virtual Accept(visitor : Visitor) : Element
}
class ElementA {
+Accept(visitor : Visitor) : Element
}
class ElementB {
+Accept(visitor : Visitor) : Element
}
class Visitor {
+virtual Visit(element : ElementA) : Element
+virtual Visit(element : ElementB) : Element
}
class VisitorX {
超级会员免费看
订阅专栏 解锁全文
8

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



