解释器模式(Interpreter)

来源:互联网 发布:苹果绿色上网软件注册 编辑:程序博客网 时间:2024/06/05 08:14
     给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
    Context类是一个上下文环境类,Plus和Minus分别是用来计算的实现,代码如下:
public interface Expression {      public int interpret(Context context);  } 
public class Plus implements Expression {      @Override      public int interpret(Context context) {          return context.getNum1()+context.getNum2();      }  }  public class Minus implements Expression {      @Override      public int interpret(Context context) {          return context.getNum1()-context.getNum2();      }  } 
public class Context {      private int num1;      private int num2;      public Context(int num1, int num2) {          this.num1 = num1;          this.num2 = num2;      }      public int getNum1() {          return num1;      }      public void setNum1(int num1) {          this.num1 = num1;      }      public int getNum2() {          return num2;      }      public void setNum2(int num2) {          this.num2 = num2;      }  }
public class Test {      public static void main(String[] args) {          // 计算9+2-8的值          int result = new Minus().interpret((new Context(new Plus()                  .interpret(new Context(9, 2)), 8)));          System.out.println(result);      }  }
最后输出正确的结果:3。 

     基本就这样,解释器模式用来做各种各样的解释器,如正则表达式等的解释器等等!

0 0
原创粉丝点击