PHP設(shè)計模式(二十二)—解釋器模式(Interpreter Pattern)

解釋器模式(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;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容