標籤:style blog http io 使用 ar java for sp
定義:給定一個語言,定義它的方法的一種表示,並定義一個解譯器,這個解譯器使用該表示解釋語言中的句子
結構圖:
範例程式碼:
public abstract class AbstractExpression {public abstract void interpret(Context context);}public class NonterminalExpression extends AbstractExpression {@Overridepublic void interpret(Context context) {// TODO Auto-generated method stubSystem.out.println("非終端解譯器");}}public class TerminalExpression extends AbstractExpression {@Overridepublic void interpret(Context context) {// TODO Auto-generated method stubSystem.out.println("終端解譯器");}}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;}}用戶端代碼:
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);}}}
輸出結果:
終端解譯器
非終端解譯器
終端解譯器
終端解譯器
設計模式之解譯器模式