设计模式——解释器模式

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

(二十)解释器模式-代码实现