2019独角兽企业重金招聘Python工程师标准>>>

?

Interpreter解释器模式定义:
定义语言的文法 ,并且建立一个解释器来解释该语言中的句子.

Interpreter似乎使用面不是很广,它描述了一个语言解释器是如何构成的,在实际应用中,我们可能很少去构造一个语言的文法.我们还是来简单的了解一下:

首先要建立一个接口,用来描述共同的操作.

public interface AbstractExpression {
   void interpret( Context context );
}

再看看包含解释器之外的一些全局信息

public interface Context { }

AbstractExpression的具体实现分两种:终结符表达式和非终结符表达式:

public class TerminalExpression implements AbstractExpression {
   public void interpret( Context context ) { }
}

对于文法中没一条规则,非终结符表达式都必须的:
public class NonterminalExpression implements AbstractExpression {
   private AbstractExpression successor;
  
   public void setSuccessor( AbstractExpression successor ) {
     this.successor = successor;
   }

   public AbstractExpression getSuccessor() {
     return successor;
   }

   public void interpret( Context context ) { }
}

转载于:https://my.oschina.net/sunzhyng/blog/372069

设计模式之Interpreter(解释器)相关推荐

  1. 设计模式之 Interpreter(解释器) 通俗理解

    23种设计模式 1 Interpreter定义: 定义语言的文法 ,并且建立一个解释器来解释该语言中的句子.通俗来讲就是定义一套规则,然后有个工具类,根据你传入的参数就知道你表达的意思. Interp ...

  2. 设计模式学习笔记——解释器(Interpreter)模式

    设计模式学习笔记--解释器(Interpreter)模式 @(设计模式)[设计模式, 解释器模式, Interpreter] 设计模式学习笔记解释器Interpreter模式 基本介绍 解释器案例 类 ...

  3. java设计模式适配器模式_Java解释器设计模式

    java设计模式适配器模式 Interpreter design pattern is one of the behavioral design pattern. Interpreter patter ...

  4. 设计模式之略见一斑(解释器模式Interpreter)

    解释器模式是一种比较难理解的模式,但如果你对Command(命令模式)和Composite(组合模式)很了解的话,你会发现其实解释器模式就是这两种的组合.为何要使用解释器模式,如何用解释器模式呢,这就 ...

  5. Net设计模式实例之解释器模式(Interpreter Pattern)

    一.解释器模式简介(Brief Introduction) 解释器模式(Interpreter Pattern),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言 ...

  6. [设计模式-行为型]解释器模式(Interpreter)

    一句话 看起来是用来解释一种语言的文法.(类似不同的解释器子类解释不同的字符) 和编译器类似的解释器, 实际状况可能使用的比较少. 概括 解析 INTERPRETER-俺有一个<泡MM真经> ...

  7. 设计模式之15 - 解释器模式Interpreter

    1. 解释器模式(Interpreter Pattern)的定义 (1)定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. ①文法:即语法规则.在解 ...

  8. 《研磨设计模式》chap21 解释器模式Interpreter(2)parse模型

    1. 定义 读取表达式,构建抽象语法树,叶子类,节点类,context上下文 step1:分解表达式,得到需要解析的元素名称和该元素对应的解析模型 step2:根据节点的属性转换成为相应的解释器对象 ...

  9. 《研磨设计模式》chap21 解释器模式Interpreter(1)模式介绍

    场景:读写xml文件,如果代码"写死了":谁是谁的child,万一文件父子节点改了,又要改代码. 1. 正常编码(不使用模式) public class ReadAppXml {/ ...

  10. [转载] C#面向对象设计模式纵横谈——16 Interpreter解释器模式

    主讲:李建忠 来源:http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/consyscourse/CsharpOOD. ...

最新文章

  1. Ubuntu下dex2jar的安装和使用
  2. Part1: Specification of Required Functions
  3. ROS笔记——Create a cropped bagfile(创建一个已裁剪的包文件)
  4. 自定义ActionBar
  5. 一文超详细讲解文本风格迁移
  6. Java好还是Python好?一张图告诉你!
  7. Vim快捷键(四):Vim查找与替换
  8. java rgb565转rgb888_RGB565 与 RGB888的相互转换
  9. 梦三国测试服显示连接服务器失败,我的登陆进去以后说与服务器失去连接怎么回事...
  10. Calculate Tangent Space是怎么计算切线的
  11. 测判三极管的口诀 (挑战者)
  12. ae教程 (五)滤镜特效 (五)描边光效
  13. 常见linux服务器存储空间,怎么在linux上查看服务器的存储空间多大
  14. AO3401-ASEMI场效应管AO3401
  15. 计算机网络体系结构划分
  16. 磁盘柜支持linux,linux 连接磁盘柜
  17. CTC 论文阅读笔记
  18. WordPress 大前端dux5.0Plus(添加:添加主机推荐和联系我们模块;)-dux5.0 增加首页公告模块
  19. WinImage 8.10注册算法简单分析
  20. 魔兽世界随身助手 已从服务器断开,魔兽世界APP常见问题解答 魔兽世界随身助手APP常见问题解决方案...

热门文章

  1. linux怎么点亮硬盘灯_一种基于Linux系统下测试Expander背板硬盘指示灯的方法及系统与流程...
  2. 计算机硬件英语单词有哪些,计算机硬件英语词汇
  3. delphi7 增加管理员权限_EHR系统的权限设计
  4. php5.4 无法连接mongo,php连接MongoDB总是失败,为什么?
  5. 高淇Struts2.0教程之视频笔记(4)
  6. Hive 实用的第三方 UDF 收集
  7. AC日记——计算循环节长度 51nod 1035
  8. HTML学习基础教程
  9. proc文件系统、sysfs文件系统、kobject操作
  10. HDU3954 线段树(区间更新 + 点更新)