关闭

18.Interpreter(行为型模式)

256人阅读 评论(0) 收藏 举报

【起源】

         不断重现的复杂问题,总是可以分解成可以解决的小问题(就像一切数学函数都可以用级数分解成正弦函数和余弦函数)。可以考虑将问题用一个句子表示(语法自定义),并构建解释器(描述语法规则),解释句子的含义(处理该问题)。

         本质是通过解释器的解释规则将复杂问题分解成已知的小问题,并逐个解决。定义解释器是关键!

 

【动机】

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

 

【核心】

         宏观思想:映射。

         任何一种语言的本质:含义的表达。“语言的表示”与“含义”是映射关系,通过“语法规则”这座桥梁联系起来。

         Interpreter模式本质是在“自定义语言”,与我们平时用的计算机语言是一样的。我们通过这种语言告诉计算机去做什么事情,解释器就是语言与计算机的沟通协议。

         “映射,规则”在数学层面抽象为“函数”。我们处理问题的算法就是一个大函数,函数有(逻辑,表达)两个方面;最简单的逻辑是枚举,表达最复杂,抽象水平最低;为了得到简单的表达,必须提高抽象水平,使逻辑变得复杂。

         计算机问题的通常解决方法:本质上是枚举。因为问题的变化范围有限。

         Interpreter用来解决 变化范围不可枚举或难于枚举 的问题。解释器就是高度抽象的函数 处理=F(问题)。

 

【代码实例】

 

【模型图】

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:106710次
    • 积分:1861
    • 等级:
    • 排名:千里之外
    • 原创:89篇
    • 转载:10篇
    • 译文:0篇
    • 评论:11条
    年轻人的精神家园