解釋器模式(Interpreter Pattern): 提供了評估語言的語法或表達式的方式,它屬于行為型模式。這種模式實現(xiàn)了一個表達式接口,該接口解釋一個特定的上下文。這種模式被用在 SQL 解析、符號處理引擎等
(一)為什么需要解釋器模式
可以將一個需要解釋執(zhí)行的語言中的句子表示為一個抽象語法樹
(二)解釋器模式UML圖

Interpreter Pattern
(三)簡單實例
解釋器模式是開發(fā)中最少使用的,因為我們親自編寫語法解析的時候總是非常非常少。而且我能想到的解釋器模式例子,幾乎都是代碼繁多到我自己怕。所以這里我只給出解釋器模式的UML圖通用代碼,感興趣的話可以自己去實現(xiàn)
<?php
//抽象表達式
abstract class Expression{
//任何表達式子類都應(yīng)該有一種解析任務(wù)
abstract public function interpreter($context);
}
//抽象表達式是生成語法集合(語法樹)的關(guān)鍵,每個語法集合完成指定語法解析任務(wù)
//抽象表達式通過遞歸調(diào)用的方法,最終由最小語法單元進行解析完成
//終結(jié)符表達式 通常指運算變量
class TerminalExpression extends Expression{
//終結(jié)符表達式通常只有一個
public function interpreter($context){
return null; //視具體業(yè)務(wù)實現(xiàn)
}
}
//非終結(jié)符表達式 通常指運算的符號
class NonterminalExpression extends Expression{
public function interpreter($context){
return null;
}
}