直譯器模式(行為型)

2021-07-25 22:45:34 字數 1543 閱讀 1547

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

結構

適用場景

uml類圖

下面就是直譯器模式的**實現:

expression

public

inte***ce expression

nonterminalexpression

public

class

valueexpression

implements

expression

@override

public

intinterprete()

}

terminalexpression

public

abstract

class

symbolexpression

implements

expression

}public

class

addexpression

extends

symbolexpression

@override

public

intinterprete()

}public

class

subexpression

extends

symbolexpression

@override

public

intinterprete()

}

context

public

class calculator

else

if(strarr[i].equalsignorecase("-"))

else

}this.expression = (expression) stack.pop();

return this;

}public

int calculate()

}

test

public

class test

}

總結:在平常開發中直譯器模式用的很少,直譯器模式一般用於指令碼語言解析器的編寫和編譯器的編寫;例如xml解析器、json解析器、gcc編譯器等等。直譯器執行的效率也是很低的,所以通常我們編譯乙個專案都要花費一點時間。

參考:

Java設計模式 行為型 直譯器模式

x是乙個變數,y也是乙個變數,x可以為任何值,y也可以為任何值。因此,每個變數都可以對應乙個具體的值,通過上下文可以承載這樣的對映關係。public class context 獲取變數值 public integer lookup variable variable 無論是變數還是表示式,都能獲得...

行為型設計模式 直譯器模式詳解

直譯器模式 interpreter pattern 提供了評估語言的語法或表示式的方式,它屬於行為型模式。這種模式實現了乙個表示式介面,該介面解釋乙個特定的上下文。給定乙個語言,定義它的文法表示,並定義乙個直譯器,這個直譯器使用該標識來解釋語言中的句子。該模式對於複雜的場景實現起來比較困難,實際應用...

行為型 命令模式 直譯器模式 中介模式

命令模式 直譯器模式 中介模式。這 3 個模式使用頻率低 理解難度大 命令模式 定義 命令模式將請求 命令 封裝為乙個物件,這樣可以使用不同的請求引數化其他物件 將不同請求依賴注入到其他物件 使用場景 比如,非同步 延遲 排隊執行命令 撤銷重做命令 儲存命令 給命令記錄日誌 ps 和策略模式,工廠模...