情节:其实你不懂老板的心!
定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子,这样就可以构建一个解释器。
结构图:
interface AbstractExpression {
void Interpret(Context context);
}
public class Context {
private String input;
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
}
public class TerminalExpression implements AbstractExpression{
@Override
public void Interpret(Context context) {
System.out.println("终端解释器");
}
}
public class NonterminalExpression implements AbstractExpression{
@Override
public void Interpret(Context context) {
System.out.println("非终端解释器");
}
}
public class Client {
public static void main(String[] args) {
Context context = new Context();
List<AbstractExpression> list = new ArrayList<>();
list.add(new TerminalExpression());
list.add(new NonterminalExpression());
for (AbstractExpression abstractExpression : list) {
abstractExpression.Interpret(context);
}
}
}