一、內容python
給定一種語言,定義它的文法表示,並定義一個解釋器,該解釋器使用該表示來解釋語言中的句子。
解釋器模式中會有終結符和非終結符之說,語法也根據兩種終結符,決定語句最終含義。app
二、角色spa
AbstractExpression: 抽象表達式.net
TerminalExpression: 終結符表達式
NonterminalExpression: 非終結符表達式
Context: 環境類
Client: 客戶類翻譯
三、使用場景日誌
一、若一個問題重複發生,能夠考慮使用解釋器模式。這點在數據處理和日誌處理過程當中使用較多,當數據的需求方須要將數據納爲己用時,必須將數據「翻譯」成本系統的數據規格;一樣的道理,日誌分析平臺也須要根據不一樣的日誌格式翻譯成統一的「語言」。code
二、特定語法解釋器。如各類解釋型語言的解釋器,再好比天然語言中基於語法的文本分析等。視頻
四、優勢 blog
一、在語法分析的場景中,具備比較好的擴展性。規則修改和制訂比較靈活。ip
五、缺點
一、解釋規則多樣化會致使解釋器的爆炸;
二、解釋器目標比較單一,行爲模式比較固定,於是重要的模塊中儘可能不要使用解釋器模式。
六、代碼示例