国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

解釋器模式(Interpreter)

hellowoody / 1791人閱讀

摘要:解釋器模式一解釋器模式定義給定一種語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子角色抽象表達式接口終結符表達式非終結符表達式上下文環境二具體實現創建抽象接口創建終結符表達式創建非終結符表達式調用輸出三

解釋器模式

一. 解釋器模式 1.1 定義

給定一種語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子.

1.2 角色

抽象表達式接口(IExpression).

終結符表達式(TerminalExpression).

非終結符表達式(NonterminalExpression).

上下文環境(Context).

二. 具體實現 1.1 創建抽象接口
    public interface IExpression {
        void interpreter();
    }
1.2 創建終結符表達式
    public class TerminalExpression implements IExpression {
        @Override
        public void interpreter() {
            System.out.println("TerminalExpression interpreter ...");
        }
    }
1.3 創建非終結符表達式
    public class NonterminalExpression implements IExpression {
        private TerminalExpression terminalExpressionA, terminalExpressionB;
        public NonterminalExpression(TerminalExpression terminalExpressionA, TerminalExpression terminalExpressionB){
            this.terminalExpressionA = terminalExpressionA;
            this.terminalExpressionB = terminalExpressionB;
        }
        @Override
        public void interpreter() {
            terminalExpressionA.interpreter();
            terminalExpressionB.interpreter();
            System.out.println("interpreter terminalExpressionA AND  terminalExpressionB ...");
        }
    }
1.4 調用
    public static void main(String[] args) {
        TerminalExpression expressionA = new TerminalExpression();
        TerminalExpression expressionB = new TerminalExpression();
        IExpression expression = new NonterminalExpression(expressionA, expressionB);
        expression.interpreter();
    }
1.5 輸出
    TerminalExpression interpreter ...
    TerminalExpression interpreter ...
    interpreter terminalExpressionA AND  terminalExpressionB ...
三. 優缺點 3.1 優點

靈活性強.

擴展性強.

3.2 缺點

每個文法對應一個表達式類,類泛濫.

復雜文法較難實現.

四. 源碼
    https://github.com/Seasons20/DisignPattern.git

END

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69624.html

相關文章

  • Design Patterns - Interpreter Pattern(譯)

    摘要:該設計模式需要實現一個表達式接口,該接口將會被告知需要解釋的特定上下文。實現我們將創建一個接口并且創建實現它的具體類。聲明一個具體類,該類將作為主要的問題的內柔解釋器。 原文地址譯者 smallclover希望對你們有所幫助 設計模式-解釋器模式 解釋器模式提供一種評估語言語法以及表達式的方式。這種類型的設計模式屬于行為型設計模式。該設計模式需要實現一個表達式接口,該接口將會被告知需要...

    gxyz 評論0 收藏0
  • 基于JavaScript的簡單釋器實現(二)——函數解析與執行

    摘要:函數執行函數執行使用后續遍歷的方式來遍歷語法樹。對于每一個子節點,若其為函數則遞歸調用執行函數。如果當前方法是運算符方法,則調用該運算符的執行函數,并返回結果如果當前方法是函數,則解析所有形參的值后生產函數作用域,并以改作用域執行當前函數。 前言 昨晚奮斗了一下,終于把這題了解了。今天完善了一下代碼,把剩下的部分放上來。目前剩下的有兩個主要模塊即函數解析與函數執行,以及兩個小模塊即運算...

    greatwhole 評論0 收藏0
  • GIL 已經被殺死了么?

    摘要:酷睿代在年取代了奔騰,主頻遠低于此。該詞被敏捷開發團隊使用較多,含義與形式會略有不同,更改已經開始將垃圾收集器的狀態轉到解釋器,因此每個子解釋器將擁有它自己的本該如此。結論死亡了嗎對于單線程的應用程序,仍然存活。showImg(https://user-gold-cdn.xitu.io/2019/5/19/16ad09f554fdf443); 本文原創并首發于公眾號【Python貓】,未經授...

    番茄西紅柿 評論0 收藏0
  • GIL 已經被殺死了么?

    摘要:酷睿代在年取代了奔騰,主頻遠低于此。該詞被敏捷開發團隊使用較多,含義與形式會略有不同,更改已經開始將垃圾收集器的狀態轉到解釋器,因此每個子解釋器將擁有它自己的本該如此。結論死亡了嗎對于單線程的應用程序,仍然存活。showImg(https://user-gold-cdn.xitu.io/2019/5/19/16ad09f554fdf443); 本文原創并首發于公眾號【Python貓】,未經授...

    pkwenda 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<