?? 解釋器(Interpreter)模式:給定一個語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。

適用性:
  • 當有一個語言需要解釋執(zhí)行, 并且你可將該語言中的句子表示為一個抽象語法樹時,可使用解釋器模式。而當存在以下情況時該模式效果最好:
  • 該文法簡單對于復雜的文法, 文法的類層次變得龐大而無法管理。此時語法分析程序生成器這樣的工具是更好的選擇。它們無需構建抽象語法樹即可解釋表達式, 這樣可以節(jié)省空間而且還可能節(jié)省時間。
  • 效率不是一個關鍵問題最高效的解釋器通常不是通過直接解釋語法分析樹實現的, 而是首先將它們轉換成另一種形式。例如,正則表達式通常被轉換成狀態(tài)機。但即使在這種情況下, 轉換器仍可用解釋器模式實現, 該模式仍是有用的。

    結構圖:

    未命名44.bmp

    Interpreter模式描述了一個語言解釋器是如何構成的,在實際應用中可能很少去構造一個語言的文法。這學期剛上過編譯原理,講了些這方面的內容,不過都是些表面的知識,這里就不舉例子了.

    參考資料:《設計模式速查找手冊》