直譯器模式 類行為型模式

2021-07-23 14:05:47 字數 978 閱讀 4497

一、意圖

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。

二、適用性

當有乙個語言需要解釋執行,並且你可將語言中的句子表示為乙個抽象的語法樹時,可使用直譯器模式。而當存在以下情況時該模式效果最好:

三、結構

四、**

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 是一種針對特定問題設計的一種解決方案。例如,匹配字串的時候,由於匹配條件非常靈活,使得通過 來實現非常不靈活。舉個例子,針對以下的匹配條件 因此,需要一種通用的表示方法 正規表示式來進行匹配。正規表示式就是乙個字串,但要把正規表示式解析為語法樹,然後再匹配指定的字...