写在前面
这篇是《和 lvgo 一起学设计模式》系列的最后一个设计模式了,这篇就轻松一些吧。
解释器模式
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
因为时代的发展、技术的更替等等原因(你想做的解释器都有人做好了,且开源)吧,可能这个是我们很长一段时间都用不到的一种设计模式了。
你能看懂TA的“眼色”吗?
还记得那些年看过的影视剧吗?或是表情包吗?
你能看懂柯镇恶和“老婆”的眼色吗?
反正我是看不懂,单是看这情况,完全看不懂是什么意思。
但如果我提前给你说下规则呢?
柯镇恶图
- 柯镇恶往左摆头,冲!
- 柯镇恶往右摆头,撤!
“老婆”图
- “老婆”坐在坐垫上,生气!
- “老婆”坐在摩的后面架子上,开心!
那这个时候再看他们的“眼色”,你能看懂了吗?如果有了上面的定义,我便知道了:
- 柯镇恶的意思是冲!(假设是往左摆头了)
- “老婆”很开心!
再谈解释器模式
<u>给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。</u>
定义一个语言:“眼色”
定义他的文法表示:“摆头”、“坐的位置”
定义解释器:“规则”
这样我们就可以通过这个解释器来了解TA了。
给定一个”眼色“,定义”摆头“或”坐的位置“,并定义一个规则,这样就可以解释图中的柯镇恶和”老婆“了。