宣告:本博文篇幅短,適合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 ...