定義
解釋器模式(Interpreter Pattern)給定一個(gè)語(yǔ)言,定義它的文法的一種表示臀蛛,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來解釋語(yǔ)言中的句子。
特征:為了解釋一種語(yǔ)言焚辅,而為語(yǔ)言創(chuàng)建的解釋器。
屬于行為型模式苟鸯。
適用場(chǎng)景
- 一些重復(fù)出現(xiàn)的問題可以用一種簡(jiǎn)單的語(yǔ)言來進(jìn)行表達(dá)同蜻。
- 一個(gè)簡(jiǎn)單語(yǔ)法需要解釋的場(chǎng)景。
舉例
- JDK Pattern regex 正則表達(dá)式
- Spring Expression
優(yōu)點(diǎn)
- 擴(kuò)展性強(qiáng):在解釋器模式中由于語(yǔ)法是由很多類表示的早处,當(dāng)語(yǔ)法規(guī)則更改時(shí)埃仪,只需修改相應(yīng)的非終結(jié)符表達(dá)式即可;若擴(kuò)展語(yǔ)法時(shí)陕赃,只需添加相應(yīng)非終結(jié)符類即可卵蛉。
- 增加了新的解釋表達(dá)式的方式。
- 易于實(shí)現(xiàn)文法:解釋器模式對(duì)應(yīng)的文檔應(yīng)當(dāng)是比較簡(jiǎn)單且易于實(shí)現(xiàn)的么库,過于復(fù)雜的語(yǔ)法并不適合使用解釋器模式傻丝。
缺點(diǎn)
- 語(yǔ)法規(guī)則較復(fù)雜時(shí),會(huì)引起類膨脹诉儒。
- 執(zhí)行效率比較低葡缰。