设计模式——解释器模式
Posted 纳什奈尔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式——解释器模式相关的知识,希望对你有一定的参考价值。
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。
以翻译为例,一般写法:
var 美国人={
打招呼=>'hello';
说中文=>中英翻译器(this.打招呼);//把'hello'翻译成'你好'
}
var 英国人={
打招呼=>'hello';
说中文=>中英翻译器(this.打招呼);//把'hello'翻译成'你好'
}
var 日本人={
打招呼=>'こんにちは';
说中文=>中日翻译器(this.打招呼);//把'こんにちは'翻译成'你好'
}
//调用
美国人.说中文//你好(美国人需要会说中文)
英国人.说中文//你好(英国人需要会说中文)
日本人.说中文//你好(日本人需要会说中文)
解释器模式写法:
var 中英翻译器={
翻译:function(content){
中英翻译(content);//把英文翻译成中文
}
}
var 中日翻译器={
翻译:function(content){
中日翻译(content);//把日文翻译成中文
}
}
var 美国人={
打招呼=>'hello';
}
var 英国人={
打招呼=>'hello';
}
var 日本人={
打招呼=>'こんにちは';
}
//调用
中英翻译器.翻译(美国人.打招呼);//你好(美国人不需要会说中文了)
中英翻译器.翻译(英国人.打招呼);//你好(英国人不需要会说中文了)
中日翻译器.翻译(日本人.打招呼);//你好(日本人不需要会说中文了)
总结:解释器模式就是通过额外独立的解释器来做转换处理。
以上是关于设计模式——解释器模式的主要内容,如果未能解决你的问题,请参考以下文章
是否有在单个活动中处理多个片段的 Android 设计模式?
设计模式解释器模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
csharp C#代码片段 - 使类成为Singleton模式。 (C#4.0+)https://heiswayi.github.io/2016/simple-singleton-pattern-us