Interpreter模式的乙個替代品

2021-04-01 22:33:31 字數 943 閱讀 6206

經典的23模式中,應該數interpreter最難了吧。偏偏不走運,在乙個應用中必須實現乙個表示式運算,解釋乙個字串,算出它的值出來。按說應該用interpreter,可是挺難實現的;找了網上的一些範例,都有很多限制,或者乾脆算錯了。

不過,琢磨著現在指令碼語言不停地要嵌入主流語言,他們應該都有直譯器吧?順手找來

jypthon

,一下就發現了它的直譯器,現成的,下面就是我的乙個簡單實現:

/*

* created on 2005-7-6

*

*/

package manager;

import .python.core.pyinteger;

import .python.core.pyobject;

import .python.util.pythoninterpreter;

public class statementcompute

private pyobject calculate(string statement) catch(exception e)

return (pyobject) interpreter.get("x");

}

public string calculatestringstatement(string statement)

public string calculateboolstatement(string statement)else

}

private string predealboolstatement(string statement)

public static void main(string args)

}

要讓它執行起來,需要在classpath中加上jython.jar.

設計模式 interpreter模式

理解 可以廣義的理解為創造一種語言,實現該語言的直譯器,然後用創造的語言編寫程式 對比 如xml就是一種語言,解析xml的 就是直譯器 例子 目標 定義4中幾種命令,使用c 解析 如下 command go end command back end command right end command...

Interpreter(直譯器模式)

名 稱 interpreter 直譯器模式 意 圖 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。適 用 環 境 u 當有乙個語言需要解釋執行,並且你可將該語言中的句子表示為乙個抽象語法樹時,可使用直譯器模式。而當存在以下情況時該模式效果最好 u 該...

Interpreter直譯器模式

關於23種設計模式的所有示例 請參考 本文所述 請參考 mydb interpreter 如上圖所示 終結直譯器是 geexpression,hundredexpression 非終結直譯器有 thousandexpression,millionexpression,billionexpressio...