package study.org;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
Context context = new Context();
List<AbstractExpression> list = new ArrayList<>();
list.add(new NonterminalExpression());
list.add(new NonterminalExpression());
list.add(new TerminalExression());
for (AbstractExpression abstractExpression : list) {
abstractExpression.Interpret(context);
}
}
}
class Context {
private String input;
private String output;
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
public String getOutput() {
return output;
}
public void setOutput(String output) {
this.output = output;
}
}
abstract class AbstractExpression {
public abstract void Interpret(Context context);
}
// 终端解释器
class TerminalExression extends AbstractExpression {
@Override
public void Interpret(Context context) {
System.out.println("TerminalExression.Interpret");
}
}
// 非终端解释器
class NonterminalExpression extends AbstractExpression {
@Override
public void Interpret(Context context) {
System.out.println("NonterminalExpression.Interpret");
}
}
网友评论