解釋器模式定義(Interpreter):ide
給定一個語言,定義它的文法的一種表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子;this
1-一、簡單UML圖spa
1-二、代碼實現code
//一、信息包(Context) class Context { public String message; //信息 public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } //2-解釋器父類 abstract class AbstractExpression { public abstract void Interpret(Context context); } //2-一、解釋器A class ExpressionA extends AbstractExpression { @Override public void Interpret(Context context) { System.out.println("原始信息:"+context.getMessage()); System.out.println("解釋器A完成解釋---------------"); } } //2-二、解釋器B class ExpressionB extends AbstractExpression { @Override public void Interpret(Context context) { System.out.println("原始信息:"+context.getMessage()); System.out.println("解釋器B完成解釋--------------"); } }
客戶端blog
Context ct = new Context(); ct.setMessage("歡迎來到廣東"); AbstractExpression ea = new ExpressionA(); ea.Interpret(ct); AbstractExpression eb = new ExpressionB(); eb.Interpret(ct);
運行結果get
一、若是一種特定類型的問題發生的頻率足夠高,那麼可能就值得將該問題的各個實例表述爲一個簡單語言中的句子。io
這樣就能夠構建一個解釋器,該解釋器經過解釋這些句子來解決該問題。class