一、意圖
給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。
二、適用性
當有乙個語言需要解釋執行,並且你可將語言中的句子表示為乙個抽象的語法樹時,可使用直譯器模式。而當存在以下情況時該模式效果最好:
三、結構
四、**
public
abstract
class
arithmeticexpression
public
class
numexpression
extends
arithmeticexpression
@override
public
intinterpret()
}
public
abstract
class
operatorexpression
extends
arithmeticexpression
}
public
class
additionexpression
extends
operatorexpression
@override
public
intinterpret()
}
public
class client
}執行結果:
32
行為型模式 直譯器模式
定義乙個語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的 語言 是指使用規定格式和語法的 直譯器模式是一種類行為型模式。abstract class abstractexpression class terminalexpression extends abstractexpression...
行為型模式 直譯器
給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。直譯器模式 interpreter 是一種針對特定問題設計的一種解決方案。例如,匹配字串的時候,由於匹配條件非常靈活,使得通過 來實現非常不靈活。舉個例子,針對以下的匹配條件 因此,需要一種通用的表示方法...
行為型模式 直譯器
直譯器模式 interpreter 是一種針對特定問題設計的一種解決方案。例如,匹配字串的時候,由於匹配條件非常靈活,使得通過 來實現非常不靈活。舉個例子,針對以下的匹配條件 因此,需要一種通用的表示方法 正規表示式來進行匹配。正規表示式就是乙個字串,但要把正規表示式解析為語法樹,然後再匹配指定的字...