zoukankan      html  css  js  c++  java
  • 解释器模式 Interpreter

    代码例子

    参考

    1、解释器模式定义

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

    说明:解释器模式设计到文法规则和抽象语法树。

    2、解释器模式的结构

    解释器模式包含四个角色:

    1)抽象表达式(AbstractExpress):声明抽象的解释操作,它是所有终结符表达式和非终结符表达式的公共父类。

    2)终结符表达式(TerminalExpress):是抽象表达式的子类,实现了与文法中的终结符相关联的解释操作,句子中的每一个终结符都是该类的一个实例。

    对于非终结符表达式,其代码相对来说比较复杂,可以通过非终结符表达式组合成更加复杂的结构。

    3)非终结符表达式(NonterminalExpress):是抽象表达式的子类,实现了文法中非终结符表达式的解释操作。在非终结符表达式中可以包含终结符表达式,也可以包含非终结符表达式,其解释操作一般用递归来实现。

    4)环境类(Context):又称为上下文类,用于存储解释器之外的一些全局信息。在该类中一般包含一个HashtableList等类型的集合对象,存储一系列公共信息,例如变量名与值的映射关系(key/value)等。

     

    3、解释器模式的优点

    1)易于改变或扩展文法;

    2)实现文法较为容易;

    3)符合开闭原则。

    4、解释器模式的缺点

    1)对于复杂文法难以维护;

    2)执行效率较低。

     

  • 相关阅读:
    layui表格数据统计
    浅谈权限控制
    搜索栏实时更新查找内容
    虚拟域名
    关于阿里云服务器安装了Apache开放80端口访问不了网页
    验证码思路
    计算标准差 Exercise07_11
    倒置数组 Exercise07_12
    找出最小元素的下标 Exercise07_10
    找出最小元素 Exercise07_09
  • 原文地址:https://www.cnblogs.com/rockywood/p/6642479.html
Copyright © 2011-2022 走看看