感想
解释器模式:定义一个语法,定义一个解释器,该解析器处理该语法句子,将某些复杂问题,表达为某种语法规则,让后构建解析器来处理这类句子。
解释器模式优点:
- 容易修改,修改语法规则只要修改相应非终结符即可。
- 扩展方便,扩展语法,只要添加非终结符类即可。
解释器模式缺点:
- 对于复杂语法的表示会产生复杂的类层次结构,不便管理和维护。
- 解析器采用递归方式,效率会受影响。
a.AbstractExpresstion:
1 | public abstract class AbstractExpresstion { |
b.AddExpresstion:
1 | public class AddExpresstion extends SymbolExpresstion { |
c.DivExpresstion:
1 | public class DivExpresstion extends SymbolExpresstion { |
d.MultiExpresstion:
1 | public class MultiExpresstion extends SymbolExpresstion { |
e.RPN:
1 | public class RPN { |
f.SubExpresstion
1 | public class SubExpresstion extends SymbolExpresstion { |
g.SymbolExpresstion:
1 | public abstract class SymbolExpresstion extends AbstractExpresstion { |
h.VarExpresstion:
1 | public class VarExpresstion extends AbstractExpresstion { |
i.Calculator:
1 | public class Calculator { |
j.客户端使用:
1 | public class MainTest { |