亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

解釋器模式(Interpreter)

hellowoody / 1841人閱讀

摘要:解釋器模式一解釋器模式定義給定一種語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來(lái)解釋語(yǔ)言中的句子角色抽象表達(dá)式接口終結(jié)符表達(dá)式非終結(jié)符表達(dá)式上下文環(huán)境二具體實(shí)現(xiàn)創(chuàng)建抽象接口創(chuàng)建終結(jié)符表達(dá)式創(chuàng)建非終結(jié)符表達(dá)式調(diào)用輸出三

解釋器模式

一. 解釋器模式 1.1 定義

給定一種語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來(lái)解釋語(yǔ)言中的句子.

1.2 角色

抽象表達(dá)式接口(IExpression).

終結(jié)符表達(dá)式(TerminalExpression).

非終結(jié)符表達(dá)式(NonterminalExpression).

上下文環(huán)境(Context).

二. 具體實(shí)現(xiàn) 1.1 創(chuàng)建抽象接口
    public interface IExpression {
        void interpreter();
    }
1.2 創(chuàng)建終結(jié)符表達(dá)式
    public class TerminalExpression implements IExpression {
        @Override
        public void interpreter() {
            System.out.println("TerminalExpression interpreter ...");
        }
    }
1.3 創(chuàng)建非終結(jié)符表達(dá)式
    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 調(diào)用
    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 ...
三. 優(yōu)缺點(diǎn) 3.1 優(yōu)點(diǎn)

靈活性強(qiáng).

擴(kuò)展性強(qiáng).

3.2 缺點(diǎn)

每個(gè)文法對(duì)應(yīng)一個(gè)表達(dá)式類,類泛濫.

復(fù)雜文法較難實(shí)現(xiàn).

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

END

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/69624.html

相關(guān)文章

  • Design Patterns - Interpreter Pattern(譯)

    摘要:該設(shè)計(jì)模式需要實(shí)現(xiàn)一個(gè)表達(dá)式接口,該接口將會(huì)被告知需要解釋的特定上下文。實(shí)現(xiàn)我們將創(chuàng)建一個(gè)接口并且創(chuàng)建實(shí)現(xiàn)它的具體類。聲明一個(gè)具體類,該類將作為主要的問(wèn)題的內(nèi)柔解釋器。 原文地址譯者 smallclover希望對(duì)你們有所幫助 設(shè)計(jì)模式-解釋器模式 解釋器模式提供一種評(píng)估語(yǔ)言語(yǔ)法以及表達(dá)式的方式。這種類型的設(shè)計(jì)模式屬于行為型設(shè)計(jì)模式。該設(shè)計(jì)模式需要實(shí)現(xiàn)一個(gè)表達(dá)式接口,該接口將會(huì)被告知需要...

    gxyz 評(píng)論0 收藏0
  • 基于JavaScript的簡(jiǎn)單釋器實(shí)現(xiàn)(二)——函數(shù)解析與執(zhí)行

    摘要:函數(shù)執(zhí)行函數(shù)執(zhí)行使用后續(xù)遍歷的方式來(lái)遍歷語(yǔ)法樹(shù)。對(duì)于每一個(gè)子節(jié)點(diǎn),若其為函數(shù)則遞歸調(diào)用執(zhí)行函數(shù)。如果當(dāng)前方法是運(yùn)算符方法,則調(diào)用該運(yùn)算符的執(zhí)行函數(shù),并返回結(jié)果如果當(dāng)前方法是函數(shù),則解析所有形參的值后生產(chǎn)函數(shù)作用域,并以改作用域執(zhí)行當(dāng)前函數(shù)。 前言 昨晚奮斗了一下,終于把這題了解了。今天完善了一下代碼,把剩下的部分放上來(lái)。目前剩下的有兩個(gè)主要模塊即函數(shù)解析與函數(shù)執(zhí)行,以及兩個(gè)小模塊即運(yùn)算...

    greatwhole 評(píng)論0 收藏0
  • GIL 已經(jīng)被殺死了么?

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

    番茄西紅柿 評(píng)論0 收藏0
  • GIL 已經(jīng)被殺死了么?

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

    pkwenda 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<