科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件深入浅出基于Java的解释器设计模式

深入浅出基于Java的解释器设计模式

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

解释器模式的定义如下:定义语言的文法,并且建立一个解释器来解释该语言中的句子。它属于类的行为模式。这里的语言意思是使用规定格式和语法的代码。

作者:中国IT实验室 来源:中国IT实验室 2007年8月26日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
 三、举例
  来举一个加减乘除的例子吧,实现思路来自于《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 class Expression
  {
  public abstract int interpret(Context con);
  }
  
  //终结符表达式角色
  
  class Constant extends Expression
  {
  private int i ;
  public Constant(int i)
  {
  this.i = i;
  }
  
  public int interpret(Context con)
  {
  return i ;
  }
  }
  
  class Variable extends Expression
  {
  public int interpret(Context con)
  {
  //this为调用interpret方法的Variable对象
  return con.LookupValue(this);
  }
  }
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章