package liu.interpreter.demo;
public abstract class AbstractExpression {
public abstract void Interpre(Context context);
}
------------------------------------------------------------
package liu.interpreter.demo;
}
------------------------------------------------------------
package liu.interpreter.demo;
public class Context {
private String input;
private String output;
public void setInput(String input) {
this.input = input;
}
public String getInput() {
return input;
}
public void setOutput(String output) {
this.output = output;
}
public String getOutput() {
return output;
}
}
------------------------------------------------------------
package liu.interpreter.demo;
private String output;
public void setInput(String input) {
this.input = input;
}
public String getInput() {
return input;
}
public void setOutput(String output) {
this.output = output;
}
public String getOutput() {
return output;
}
}
------------------------------------------------------------
package liu.interpreter.demo;
public class NonterminalExpression extends AbstractExpression{
@Override
public void Interpre(Context context) {
System.out.println("非终端解释器");
}
public void Interpre(Context context) {
System.out.println("非终端解释器");
}
}
------------------------------------------------------------
package liu.interpreter.demo;
------------------------------------------------------------
package liu.interpreter.demo;
public class TerminalExpression extends AbstractExpression{
@Override
public void Interpre(Context context) {
System.out.println("终端解释器");
}
public void Interpre(Context context) {
System.out.println("终端解释器");
}
}
------------------------------------------------------------
package liu.interpreter.demo;
------------------------------------------------------------
package liu.interpreter.demo;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
public class Main {
/**
* 解释器模式
*/
public static void main(String[] args) {
Context context = new Context();
List<AbstractExpression> list = new ArrayList<AbstractExpression>();
* 解释器模式
*/
public static void main(String[] args) {
Context context = new Context();
List<AbstractExpression> list = new ArrayList<AbstractExpression>();
list.add(new TerminalExpression());
list.add(new NonterminalExpression());
list.add(new TerminalExpression());
list.add(new TerminalExpression());
for(AbstractExpression t:list){
t.Interpre(context);
}
}
list.add(new NonterminalExpression());
list.add(new TerminalExpression());
list.add(new TerminalExpression());
for(AbstractExpression t:list){
t.Interpre(context);
}
}
}