無廢話設計模式(22)行為型模式 直譯器模式

2022-07-03 21:39:13 字數 1180 閱讀 1990

直譯器模式定義(interpreter):

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

1-1、簡單uml圖

1-2、**實現

//

1、資訊包(context)

class

context

public

void

setmessage(string message)

}//2-直譯器父類

abstract

class

abstractexpression

//2-1、直譯器a

class expressiona extends

abstractexpression}//

2-2、直譯器b

class expressionb extends

abstractexpression

}

客戶端

context ct = new

context();

ct.setmessage("歡迎來到廣東");

abstractexpression ea = new

expressiona();

ea.interpret(ct);

abstractexpression eb = new

expressionb();

eb.interpret(ct);

執行結果

1、如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。

這樣就可以構建乙個直譯器,該直譯器通過解釋這些句子來解決該問題。

無廢話設計模式(20)行為型模式 職責鏈模式

職責鏈模式定義 使多個物件都有機會處理請求,從而避免請求的傳送者喝接受者之間的耦合關係。將這個物件連成一條鏈,並沿這條鏈傳遞該請求,直到有乙個物件處理它為止。1 1 簡單uml圖 1 2 實現 1 處理請求的抽象父類 abstract class handler b 處理方法 public abst...

無廢話設計模式(12)行為型模式 模板方法模式

模板方法模式定義 定義乙個操作中的演算法骨架,而將一些步驟延遲到子類中 模板方法模式使得子類可以不改變乙個演算法的結構即可重新定義該演算法的某些步驟 1 1 簡單uml圖 1 2 實現 1 抽象父類 abstract class testphone public void poweroff publ...

設計模式 四 行為型模式

1 命令模式 是一種資料驅動的設計模式,屬於行為型模式。請求以命令的形式包裹在物件中,並傳給呼叫物件。呼叫物件尋找可以處理該明林的適合的物件,並把該命令傳給相應的物件,該物件執行命令。建立乙個命令介面 public inte ce order建立乙個請求類 public class stock pu...