設計模式之Interpreter(解釋器)

转载 2004年08月01日 04:12:00

 

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 ) { }
}

posted on 2004年06月24日 8:13 PM

设计模式(c++)笔记之二十三(Interpreter模式)

一、描述:       概念:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 最简单的例子是表达式运算。       I...
  • my183100521
  • my183100521
  • 2013年10月25日 14:34
  • 2074

设计模式(行为型)之解释器模式(Interpreter Pattern)

访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。访问者模式使得用户可以在不修改现有系...
  • yanbober
  • yanbober
  • 2015年05月06日 17:11
  • 3218

Interpreter 模式详解--设计模式(23)

Interpreter 模式的来源:         Interpreter(解释器)模式是一种特殊的设计模式,它建立一个解释器(Interpreter),对于特定的计算机程序设计语言,用来解释预先定...
  • fanyun_01
  • fanyun_01
  • 2016年07月09日 08:45
  • 2093

最全Pycharm教程(4)——有关Python解释器的相关配置

1、准备工作   (1)Pycharm版本为3.4或者更高。   (2)电脑上至少已经安装了一个Python解释器。   (3)如果你希望配置一个远程解释器,则需要服务器的相关支持。   2、...
  • u013088062
  • u013088062
  • 2015年12月01日 21:16
  • 45383

ATS名词术语(待续)

ATS名词术语副本(alternate)缓存对象(cache object)的一种变体,最初创建该术语是为了处理HTTP协议中的VARY机制(RFC2616#sec14.44),现在多用于其它的目的。...
  • tao_627
  • tao_627
  • 2016年06月30日 18:42
  • 467

[设计模式笔记]三. 行为型模式--17. Interpreter模式(解释器模式)(一)

行为型模式--Interpreter(解释器)类行为型模式 一. 意图        给定一个语言, 定义它的文法的一种表示, 并定义一个解释器, 这个解释器使用该表示来解释语言中的句子. ...
  • cay22
  • cay22
  • 2013年10月14日 17:36
  • 1098

Python 中的 GIL(Global Interpreter Lock) 全局解释器锁是什么?

文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢钧轶(cenalulu) 本文原文地址:http://cenalulu.github.io/python/gil-in-pytho...
  • HeatDeath
  • HeatDeath
  • 2017年06月02日 11:03
  • 815

简单工厂模式(思想)

简单工厂模式解释:         简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern...
  • x_zhaohu
  • x_zhaohu
  • 2016年04月09日 22:46
  • 569

解释器模式(Interpreter)

1. 模式的定义维护系统自定义的配置文件。当XML的结构发生改变之后,能够很方便地获取相应元素或者属性的值,而不用去修改解析XML的程序。解释器模式的定义: 给定一个语言,定义它的文法(语法规则)的...
  • jiangxishidayuan
  • jiangxishidayuan
  • 2016年07月21日 16:34
  • 492

Interpreter解释器模式

前言: 关于23种设计模式的所有示例代码请参考:https://github.com/Wuchenwcf/MyCode/tree/master/DP 本文所述代码请参考:https://githu...
  • luchengtao11
  • luchengtao11
  • 2017年05月14日 14:53
  • 221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:設計模式之Interpreter(解釋器)
举报原因:
原因补充:

(最多只允许输入30个字)