【云+社区年度征文】和 lvgo 一起学设计模式(二十三)行为型之解释器模式

2020-12-04 10:14:21 浏览数 (1)

写在前面

这篇是《和 lvgo 一起学设计模式》系列的最后一个设计模式了,这篇就轻松一些吧。

解释器模式

给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

因为时代的发展、技术的更替等等原因(你想做的解释器都有人做好了,且开源)吧,可能这个是我们很长一段时间都用不到的一种设计模式了。

你能看懂TA的“眼色”吗?

还记得那些年看过的影视剧吗?或是表情包吗?

interpreter-1.jpginterpreter-1.jpg
interpreter-2.jpginterpreter-2.jpg

你能看懂柯镇恶和“老婆”的眼色吗?

反正我是看不懂,单是看这情况,完全看不懂是什么意思。

但如果我提前给你说下规则呢?

柯镇恶图

  1. 柯镇恶往左摆头,冲!
  2. 柯镇恶往右摆头,撤!

“老婆”图

  1. “老婆”坐在坐垫上,生气!
  2. “老婆”坐在摩的后面架子上,开心!

那这个时候再看他们的“眼色”,你能看懂了吗?如果有了上面的定义,我便知道了:

  • 柯镇恶的意思是冲!(假设是往左摆头了)
  • “老婆”很开心!

再谈解释器模式

<u>给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。</u>

定义一个语言:“眼色”

定义他的文法表示:“摆头”、“坐的位置”

定义解释器:“规则”

这样我们就可以通过这个解释器来了解TA了。

给定一个”眼色“,定义”摆头“或”坐的位置“,并定义一个规则,这样就可以解释图中的柯镇恶和”老婆“了。

0 人点赞