Definition: defines a language, a representation of its method, and an interpreter. This interpreter uses this interpreter to represent sentences in the language of interpretation.
Structure:
Sample Code:
Public abstract class extends actexpression {public abstract void interpret (context);} public class nonterminalexpression extends actexpression {@ overridepublic void interpret (context) {// todo auto-generated method stubsystem. out. println ("non-terminal interpreter");} public class terminalexpression extends actexpression {@ overridepublic void interpret (context) {// todo auto-generated method stubsystem. out. println ("terminal interpreter") ;}} public class context {private string input; private string ouput; Public String getinput () {return input;} public void setinput (string input) {This. input = input;} Public String getouput () {return ouput;} public void setouput (string ouput) {This. ouput = ouput ;}}
Client code:
public class Client {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 exp : list) {exp.interpret(context);}}}
Output result:
Terminal Interpreter
Non-terminal Interpreter
Terminal Interpreter
Terminal Interpreter
Design Pattern-interpreter Pattern