表达式处理的访客模式实现及优化
在处理面向对象编程(OOP)中的表达式时,我们通常关注两件事:将表达式作为文本打印出来,以及计算表达式的值。我们希望以统一且简洁的方式完成这些操作,下面将介绍多种实现方法。
1. 侵入式访客模式(Intrusive Visitor)
最简单的解决方案是在基类 Expression 中添加一个抽象成员:
public abstract class Expression
{
// 添加一个新操作
public abstract void Print(StringBuilder sb);
}
同时,需要在 DoubleExpression 和 AdditionExpression 中实现 Print 方法。以 AdditionExpression 为例:
public class AdditionExpression : Expression
{
...
public override void Print(StringBuilder sb)
{
sb.Append(value: "(");
left.Print(sb);
sb.Append(value: "+");
right.Print(sb);
sb.A
访客模式在表达式处理中的应用
超级会员免费看
订阅专栏 解锁全文
6

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



