package interpreter_pattern;
public class Context {
private String input;
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
private String output;
public String getOutput() {
return output;
}
public void setOutput(String output) {
this.output = output;
}
}
package interpreter_pattern;
public abstract class AbstractExpression {
public abstract void interpret(Context context);
}
package interpreter_pattern;
public class TerminalExpression extends AbstractExpression{
@Override
public void interpret(Context context) {
System.out.println("Terminal Expression");
}
}
package interpreter_pattern;
public class NonTerminalExpression extends AbstractExpression{
@Override
public void interpret(Context context) {
System.out.println("NonTerminal Expression");
}
}
package interpreter_pattern;
import java.util.ArrayList;
public class Main {
public static void main(String args[]) {
Context c = new Context();
ArrayList<AbstractExpression>list=new ArrayList<AbstractExpression>();
//The orders has meaning that is called language_regular_tree.
list.add(new TerminalExpression());
list.add(new TerminalExpression());
list.add(new NonTerminalExpression());
list.add(new TerminalExpression());
for(AbstractExpression exp : list) {
exp.interpret(c);
}
}
}
This is a general introduction to the 23 design patterns:
https://blog.csdn.net/GZHarryAnonymous/article/details/81567214