設計模式之直譯器模式

2021-09-11 16:37:55 字數 1299 閱讀 1566

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

重**生的問題可以使用直譯器模式

乙個簡單語法需要解釋的場景

可擴充套件性比較好,靈活

增加了新的解釋表示式的方式

易於實現文法

執行效率比較低,可利用場景比較少

對於複雜的文法比較難維護

抽象表示式,宣告乙個抽象的解釋操作

public inte***ce abstractexpression
終結符表示式

public class terminalexpression implements abstractexpression 

}

非終結符表示式

public class nonterminalexpression implements abstractexpression 

}

包含直譯器之外的一些全域性資訊

public class context 

public void setinput(string input)

public string getoutput()

public void setoutput(string output)

}

客戶端呼叫

直譯器模式(interpreter),給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,

這個直譯器使用該表示來解釋語言中的句子。

public class client }}

設計模式系列:

建立型結構型

行為型工廠方法

簡單工廠

抽象工廠

建造者模式

單例模式

原型模式

組合模式

外觀模式

橋接模式

**模式

享元模式

介面卡模式

裝飾模式

策略模式

模板方法

狀態模式

觀察者模式

備忘錄模式

迭代器模式

命令模式

職責鏈模式

直譯器模式

訪問者模式

中介者模式

設計模式之直譯器模式

直譯器模式是一種類行為型模式,它主要是用來解釋特定語言的特定文法表示,雖然這個在實際生產中不常用到,但是我們學習一下還是有幫助的。定義 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。使用場景 當有乙個語言需要解釋執行,並且你可將該語言中的句子表示為乙...

設計模式之直譯器模式

直譯器模式 1.直譯器模式 給定乙個語言,定義它文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構建乙個直譯器,該直譯器通過解釋這些句子來解決該問題。比如 在字串中...

設計模式之直譯器模式

解析器模式是一種行為型設計模式。其思想是 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,該直譯器使用該表示來解釋語言中的句子。解析器模式涉及4個角色 結構圖 於網路 下面提供乙個簡單例子。乙個簡易的控制台計算器,要求使用者輸入乙個表示式,如a b c,然後要求使用者輸入每個變數的具體值,如...