經典的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...