18.Interpreter(行为型模式)

【起源】

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

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

 

【动机】

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

 

【核心】

         宏观思想:映射。

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

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

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

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

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

 

【代码实例】

 

【模型图】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值