[デザインモード] - 行動-11-インタプリタモード

主な役割

  1. 抽象表現(抽象表現)役割:インタプリタがメインの解釈は(解釈あって、インタプリタの動作を説明するインターフェースの規則を定義しました)。
  2. ターミネーター式(ターミナル式)ロール:抽象的な表現のサブクラスは、文法内の端末のシンボルに関連付けられた動作を実行するために使用され、文法は、各端末のシンボルは、それに対応する特定の発現端部を有します。
  3. 非終端式(非終端式)ロール:抽象的な表現のサブクラスは、非終端記号表現に各ルールの対応に関連した文法を文法非終端動作を実現するために使用されます。
  4. 環境(コンテキスト)の役割は:典型的には、一般的にすべての共有データインタプリタを送信するために使用される、インタプリタがここで後者の値を得ることができ、必要なそれぞれの共通インタプリタのデータまたは機能を含みます。
  5. クライアント(クライアント):文章や表現の主な仕事は、もちろん、あなたも通訳の通訳の環境ロールを介して間接的にアクセスすることができ、抽象構文木のインタプリタオブジェクトの記述を使用してに解析し、その後、通訳通訳を呼ぶことがあります。

サンプルコード

//抽象表达式类
interface AbstractExpression
{
    public Object interpret(String info);    //解释方法
}
//终结符表达式类
class TerminalExpression implements AbstractExpression
{
    public Object interpret(String info)
    {
        //对终结符表达式的处理
    }
}
//非终结符表达式类
class NonterminalExpression implements AbstractExpression
{
    private AbstractExpression exp1;
    private AbstractExpression exp2;
    public Object interpret(String info)
    {
        //非对终结符表达式的处理
    }
}
//环境类
class Context
{
    private AbstractExpression exp;
    public Context()
    {
        //数据初始化
    }
    public void operation(String info)
    {
        //调用相关表达式类的解释方法
    }
}

おすすめ

転載: www.cnblogs.com/tuofan/p/12391506.html