Interpreter 直譯器 設計模式

2021-07-08 20:46:32 字數 643 閱讀 9052

宣告:本博文篇幅短,適合review。

一、概念

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。

二、模式結構圖

三、例子

class context 

void setinput(string input)

string getoutput()

void setoutput(string output)

private:

string minput;

string moutput;

};class abstractexpression;

class terminalexpression : public abstractexpression

}

應用如:正規表示式、瀏覽器解析html等

四、缺點

1、優點

a、每一條文法規則都可以表示為乙個類,因此可以方便地實現乙個簡單的語言。

b、易於改變和擴充套件文法。

2、缺點

a、對於複雜文法難以維護。

Interpreter(直譯器模式)

名 稱 interpreter 直譯器模式 意 圖 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。適 用 環 境 u 當有乙個語言需要解釋執行,並且你可將該語言中的句子表示為乙個抽象語法樹時,可使用直譯器模式。而當存在以下情況時該模式效果最好 u 該...

Interpreter直譯器模式

關於23種設計模式的所有示例 請參考 本文所述 請參考 mydb interpreter 如上圖所示 終結直譯器是 geexpression,hundredexpression 非終結直譯器有 thousandexpression,millionexpression,billionexpressio...

直譯器模式 interpreter

直譯器模式,給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。直譯器模式提供了評估語言的語法或表示式的方式,它屬於行為型模式。這種模式實現了乙個表示式介面,該介面解釋乙個特定的上下文。這種模式被用在 sql 解析 符號處理引擎等。演奏內容類 class ...