![](https://www.jinchutou.com/images/s.gif)
Interpreter(解释器)模式--精选文档
6页1、设计模式-Interpreter(解释器)模式GOF:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。现在的大大小小(以应用面的宽广来说)编程语言不下几百种。Interpreter模式描述了一个语言解释器是如何构成的,在实际应用中我们可能很少去构造一个语言的文法。因为现有的也学不好啊。考虑再三,我觉定不深入研究了。以后有时间再补上,有机会了再深入研究。为了设计模式学习的完整,还是写了这片文章。一、引子其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。二、定义与结构解释器模式的定义如下:定义语言的文法,并且建立一个解释器来解释该语言中的句子。它属于类的行为模式。这里的语言意思是使用规定格式和语法的代码。在GOF的书中指出:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过
2、解释这些句子来解决该问题。而且当文法简单、效率不是关键问题的时候效果最好。呵呵,这也就是解释器模式应用的环境了。让我们来看看神秘的解释器模式是由什么来组成的吧。1) 抽象表达式角色:声明一个抽象的解释操作,这个接口为所有具体表达式角色(抽象语法树中的节点)都要实现的。什么叫做抽象语法树呢?java与模式中给的解释为:抽象语法树的每一个节点都代表一个语句,而在每个节点上都可以执行解释方法。这个解释方法的执行就代表这个语句被解释。由于每一个语句都代表这个语句被解释。由于每一个语句都代表一个常见的问题的实例,因此每一个节点上的解释操作都代表对一个问题实例的解答。2) 终结符表达式角色:具体表达式。a) 实现与文法中的终结符相关联的解释操作b) 而且句子中的每个终结符需要该类的一个实例与之对应3) 非终结符表达式角色:具体表达式。a) 文法中的每条规则R:=R1R2Rn都需要一个非终结符表带式角色b) 对于从R1到Rn的每个符号都维护一个抽象表达式角色的实例变量c) 实现解释操作,解释一般要递归地调用表示从R1到Rn的那些对象的解释操作4) 上下文(环境)角色:包含解释器之外的一些全局信息。5
3、) 客户角色:a) 构建(或者被给定)表示该文法定义的语言中的一个特定的句子的抽象语法树b) 调用解释操作放上张解释器结构类图吧,这也是来自于GOF的书中。呵呵,对每一个角色都给出了详细的职责,而且在类图中给出五个角色之间的关系。这样实现起来也不是很困难了,下面举了一个简单的例子,希望能加深你对解释器模式的理解。三、举例来举一个加减乘除的例子吧,实现思路来自于java与模式中的例子。每个角色的功能按照上面提到的规范来实现。/上下文(环境)角色,使用HashMap来存储变量对应的数值class Context private Map valueMap = new HashMap();public void addValue(Variable x , int y)Integer yi = new Integer(y);valueMap.put(x , yi);public int LookupValue(Variable x)int i = (Integer)valueMap.get(x).intValue();return i ;/抽象表达式角色,也可以用接口来实现abstract cl
《Interpreter(解释器)模式--精选文档》由会员M****1分享,可在线阅读,更多相关《Interpreter(解释器)模式--精选文档》请在金锄头文库上搜索。
![2022-2023学年高二化学上学期第三次月考(12月)试题(含解析)](https://union.152files.goldhoe.com/2023-7/15/049b06ec-bac7-4863-839b-69b4e0ebe814/pic1.jpg)
2022-2023学年高二化学上学期第三次月考(12月)试题(含解析)
![周考物理试题(李铁2014年3月4).doc](https://union.152files.goldhoe.com/2022-11/14/445076f8-45f6-4ae6-b819-3187ed720336/pic1.jpg)
周考物理试题(李铁2014年3月4).doc
![三年级英语unit1教案.docx](https://union.152files.goldhoe.com/2023-4/27/1c15185c-8718-4493-82dd-f63653457a5b/pic1.jpg)
三年级英语unit1教案.docx
![适合宝宝睡前听的童话故事【四篇】.doc](https://union.152files.goldhoe.com/2023-2/4/25edb24e-723e-4cba-9682-c910a380ccaa/pic1.jpg)
适合宝宝睡前听的童话故事【四篇】.doc
![2023父亲节国旗下演讲稿274范文.docx](https://union.152files.goldhoe.com/2023-9/27/dc6dbeb7-aae8-4707-a523-048ee6a62470/pic1.jpg)
2023父亲节国旗下演讲稿274范文.docx
![自来水加压泵站.doc](https://union.152files.goldhoe.com/2024-2/3/332300ff-653c-4e81-b53b-bc7fb59ec740/pic1.jpg)
自来水加压泵站.doc
![幼儿园生理健康教案模板.doc](https://union.152files.goldhoe.com/2024-2/22/0c2b1ecd-2d81-42ec-9eb8-9b1caa518d8d/pic1.jpg)
幼儿园生理健康教案模板.doc
![地基基础强条](https://union.152files.goldhoe.com/2022-10/18/e39c7424-ab4c-4284-a731-3c80179afb30/pic1.jpg)
地基基础强条
![利用数码相机SDK开发图像采集应用程序.docx](https://union.152files.goldhoe.com/2024-2/22/4733d736-a2d8-46d1-878d-0466df06a399/pic1.jpg)
利用数码相机SDK开发图像采集应用程序.docx
![全厂道路照明工程风险评价](https://union.152files.goldhoe.com/2023-9/24/dee769c1-cd21-4a7c-abb5-045896e4702f/pic1.jpg)
全厂道路照明工程风险评价
![高三数学小题训练16(学生版)](https://union.152files.goldhoe.com/2023-7/3/1583aedb-2e4a-4af0-9ea3-673f330f592b/pic1.jpg)
高三数学小题训练16(学生版)
![大学年度学校工作计划要点](https://union.152files.goldhoe.com/2022-10/4/e17b7f69-3e9a-4eb3-a68b-1a7ae9251146/pic1.jpg)
大学年度学校工作计划要点
![现代舞技术课程课时教案.docx](https://union.152files.goldhoe.com/2023-5/19/a69bcb6c-7abf-4288-a72a-61729d39fcec/pic1.jpg)
现代舞技术课程课时教案.docx
![解读高二关键年](https://union.152files.goldhoe.com/2023-9/26/0f96dc22-94f4-46f6-94bd-7d2c42b83a59/pic1.jpg)
解读高二关键年
![怎样学习语文.doc](https://union.152files.goldhoe.com/2023-11/2/3de281fd-ab92-486e-83bc-3935573946b0/pic1.jpg)
怎样学习语文.doc
![2023年从娇柔女孩到潇洒女兵的历程.docx](https://union.152files.goldhoe.com/2024-2/11/6d044346-b877-4e3a-b991-66bb78e74d1f/pic1.jpg)
2023年从娇柔女孩到潇洒女兵的历程.docx
![语文小题训练严兵.doc](https://union.152files.goldhoe.com/2023-6/1/fa6a1991-85a1-4a3b-84b6-435871459154/pic1.jpg)
语文小题训练严兵.doc
![2021年-镇典型材料新编修订.DOC](https://union.152files.goldhoe.com/2022-8/29/3bbf7f81-aa62-4aae-bda8-2d10d996cc00/pic1.jpg)
2021年-镇典型材料新编修订.DOC
![幼儿园中班音乐优质公开课获奖教案教学设计古诗新唱《望庐山瀑布》-.docx](https://union.152files.goldhoe.com/2022-12/12/802d0200-a06c-4161-adf2-eb7242dc24a1/pic1.jpg)
幼儿园中班音乐优质公开课获奖教案教学设计古诗新唱《望庐山瀑布》-.docx
![教师要学会寻找幸福.doc](https://union.152files.goldhoe.com/2022-9/19/aa2d7263-a63e-4af3-b0df-83d5b49d7d92/pic1.jpg)
教师要学会寻找幸福.doc
![2020年秋新教科版小学科学四年级上册复习资料 第1单元《声音》](/Images/s.gif)
2023-05-21 3页
![房屋拍卖授权委托书范本](/Images/s.gif)
2023-08-24 2页
![2021年全国甲卷理综化学高考真题word文档版(精校版)](/Images/s.gif)
2023-10-12 6页
![培训机构疫情期间外来人员入校管理制度](/Images/s.gif)
2022-08-28 2页
![易制毒仓库安全检查表](/Images/s.gif)
2024-01-26 6页
![临床医学检验学中级职称模拟试题](/Images/s.gif)
2024-01-24 30页
![高考动员会讲话稿80天](/Images/s.gif)
2023-01-16 6页
![关于感恩老师的小故事](/Images/s.gif)
2024-02-06 11页
![英美文学选读笔记完整笔记,全面归纳](/Images/s.gif)
2022-08-28 151页
![钻孔组合机床设计开题报告.doc](/Images/s.gif)
2023-01-28 5页