解释器的的适用范围比较小,一般主要用在各种OPP开发的解释器中,比如正则表达式的解释器,或者一个数学表达式的解释器。
下面我们就以解释数学表达式为例子,讲讲什么是解释器模式。
源码:
package com.freedom.interpreter;
public class Context {
private int a;
private int b;
public Context(int a, int b){
this.a = a;
this.b = b;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
}
package com.freedom.interpreter;
public interface Expression {
public int interpret(Context context);
}
package com.freedom.interpreter;
public class Plus implements Expression {
@Override
public int interpret(Context context) {
return context.getA()+context.getB();
}
}
package com.freedom.interpreter;
public class Test {
public static void main(String[] args) {
int resultPlus = new Plus().interpret(new Context(3, 5));
System.out.println(resultPlus);
}
}
这就是一个简单的解释器模式例子,大家可以练习copy一个减法解释器出来。由于比较简单,这里就不累赘了!
最近要连上13天班,是在是夹缝里挤出来的时间继续写了……