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

2021-07-09 05:02:27 字數 877 閱讀 7512

x是乙個變數,y也是乙個變數,x可以為任何值,y也可以為任何值。因此,每個變數都可以對應乙個具體的值,通過上下文可以承載這樣的對映關係。

public class context 

// 獲取變數值

public integer lookup(variable variable)

}

無論是變數還是表示式,都能獲得乙個結果,我們通過乙個直譯器來獲取最終的結果。

//直譯器

public abstract class expression

若是乙個變數,那麼從上下文中去尋找變數對應的值。

//變數(終結符表示式)

public class variable extends expression

}

若是乙個表示式,那麼去計算更簡單表示式或去尋找變數對應的值,直到返回最終結果。

//加法運算(非終結符表示式)

public class add extends expression

//相加

@override

public int interpret(context context)

}//減法(非終結符表示式)

public class subtract extends expression

//相減

@override

public int interpret(context context)

}

一切都這麼簡單,重溫一下小學的加法與減法運算。

public class client

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

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

直譯器模式(行為型)

定義 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,該直譯器使用該表示來解釋語言中的句子。結構 適用場景 uml類圖 下面就是直譯器模式的 實現 expression public inte ce expression nonterminalexpression public class ...

設計模式筆記 16 直譯器模式(行為型)

給定乙個語言,定義它的文法的一種表示,並定義一種直譯器,這個直譯器使用該表示來解釋語言中的句 子。在軟體構建過程中,如果某一特定領域的問題比較複雜,類似的模式不斷重複出現,如果使用普通的程式設計方式來實現將面臨非常頻繁的變化。在這種情況下,將特定領域的問題表達為某種語法規則下的句子,然後構建乙個直譯...