Interpreter直譯器模式

2021-08-01 02:27:29 字數 550 閱讀 1366

關於23種設計模式的所有示例**請參考:

本文所述**請參考:/mydb/interpreter

如上圖所示:

終結直譯器是:geexpression,hundredexpression

非終結直譯器有:thousandexpression,millionexpression,billionexpression

context在其中起到的作用其實就是儲存直譯器的中間結果

最終的執行結果如下圖:

可見,無論數字表示式有多長,都可以輕而易舉地將其解析為阿拉伯數字。就是如此優秀。

直譯器模式總結:

優點:直譯器是乙個簡單的語法分析工具,具有可擴充套件性,修改語法只需要修改相應的關鍵字直譯器就可以了,新增語法也只需要新增乙個關鍵字直譯器。

缺點:遞迴呼叫效率不高

Interpreter(直譯器模式)

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

直譯器模式 interpreter

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

直譯器 Interpreter 模式

size large 直譯器模式是一種行為模式,比較通用的定義 給定乙個語言之後,直譯器模式可以定義出其文法的一種表示,並同時提供乙個直譯器。客戶端可以使用這個直譯器來解釋這個語言中的句子 spring的express中就使用了這種設計模式。直譯器模式的本質就是解釋自定義了的語言,其中涉及三個概念 ...