一句话总结
给定一个语言,定义它文本的一种表示,并定义一个解释器,解释器使用该表示解释语言中的句子。
实例代码
static func main() {
let context = Context()
var array: [AbstractExpression] = []
array.append(TerminalExpression())
array.append(NonterminalExpression())
array.append(TerminalExpression())
array.append(TerminalExpression())
for item in array {
item.interpret(context: context)
}
}
protocol AbstractExpression {
func interpret(context: Context)
}
class TerminalExpression: AbstractExpression {
func interpret(context: Context) {
print("终端解释器")
}
}
class NonterminalExpression: AbstractExpression {
func interpret(context: Context) {
print("非终端解释器")
}
}
class Context {
var input = ""
var output = ""
}
应用场景
当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。
- 乐谱播放
- 语音控制机器人行动