設(shè)計模式:解釋器模式
2022-05-12 10:26 作者:做架構(gòu)師不做框架師 | 我要投稿
什么是解釋器模式
解釋器模式(Interpreter Pattern),它指定如何評估語言中的句子?;舅枷胧怯脤iT的計算機語言為每個符號(終端或非終端)創(chuàng)建一個類。
語言中句子的句法樹是解釋器模式的一個實例,用于為客戶評估(解釋)句子。
一句話歸納
實現(xiàn)特定語言解析
示例
我們每一個人都會從一個小孩子長成一個大人,在小的時候都會去幼兒園去學(xué)習(xí),大家都會背過加法口訣等各種各樣的方便記憶的口訣,1+1=2、1+2=3……
在1+1=2中,加號代表是非終結(jié)表達式,代表一種規(guī)則;等于號代表是終結(jié)表達式,解釋器模式通常只有一個終結(jié)符表達式,但有多個實例,對應(yīng)不同的終結(jié)符。
代碼如下:

適用性
以下場景我建議你考慮使用
可以將一個需要解釋執(zhí)行的語言中的句子表示為一個抽象語法樹
一些重復(fù)出現(xiàn)的問題可以用一種簡單的語言來表達
一個簡單語法需要解釋的場景
局限性
以下場景我建議你謹慎使用
執(zhí)行效率較低。解釋器模式中通常使用大量的循環(huán)和遞歸調(diào)用,當(dāng)要解釋的句子較復(fù)雜時,其運行速度很慢,且調(diào)試過程也比較麻煩。
會引起類膨脹。解釋器模式中的每條規(guī)則至少需要定義一個類,當(dāng)包含的規(guī)則很多時,類的個數(shù)將急劇增加,導(dǎo)致系統(tǒng)難以管理與維護
寫在最后
好兄弟可以點贊并關(guān)注我的公眾號“javaAnswer”,全部都是干貨。

標簽: