Java設計模式筆記之解釋器模式

1.定義

解釋器模式(interpreter),給定一個語言,定義它的文法的一種表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。

2.UML圖


角色介紹:

  • AbstractEcpression:抽象表達式,聲明一個抽象的解釋操作父類,並定義一個抽象的解釋方法,其具體的實現在各個具體的子類解釋器中完成。
  • TerminalExpression:終結表達式,實現文法中與終結符有關的解釋操作。文法中每一個終結符都有一個具體的終結表達式與之對應。
  • NonterminalExpression:非終結表達式,實現文法中與非終結符有關的解釋操作。
  • Context:上下文環境類,包含解釋器之外的全局信息 。
  • Client:客戶類。解析表達式,構建抽象語法樹,執行具體的解釋操作等。

3.通用模式代碼

/**
 * 抽象表達式
 */

public abstract class AbstractExpression {
    public abstract void interpret(Context context);

}


3.2 終結表達式

/**
 * 終結符表達式
 */

public class TerminalExpression extends AbstractExpression {
    @Override
    public void interpret(Context context) {
        //實現文法中與終結符有關的解釋操作
    }
}


3.3 非終結表達式

/**
 * 非終結符表達式
 */

public class NonterminalExpression extends AbstractExpression {
    @Override
    public void interpret(Context context) {
        //實現文法中與非終結符有關的解釋操作
    }
}






發佈了105 篇原創文章 · 獲贊 35 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章