概念
解释器模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。
实现
类图
代码
- Expression
 
1  | package com.littlehui.design;  | 
- OrExpression
 
1  | package com.littlehui.design;  | 
- AndExpression
 
1  | package com.littlehui.design;  | 
- Client
 
1  | package com.littlehui.design;  | 
- 执行结果
 
1  | Connected to the target VM, address: '127.0.0.1:61783', transport: 'socket'  | 
场景
- 可以将一个需要解释执行的语言中的句子表示为一个抽象语法树
 - 一些重复出现的问题可以用一种简单的语言来表达
 - 一个简单语法需要解释的场景
 
在一些编译器,运算表达式,正则表达式经常有使用。
总结
优点:
1、可扩展性比较好,灵活。
2、增加了新的解释表达式的方式。
3、易于实现简单文法。缺点:
1、可利用场景比较少。
2、对于复杂的文法比较难维护。
3、解释器模式会引起类膨胀。
4、解释器模式采用递归调用方法。