直譯器模式

2021-08-07 22:55:41 字數 1191 閱讀 4587

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

這種模式實現了乙個表示式介面,該介面解釋乙個特定的上下文。這種模式被用在 sql 解析、符號處理引擎等。典型的代表為正規表示式。

直譯器的作用在於,有乙個大家都知道的說話規則,那麼如果你說的話按照這個語法或則規則,我皆可以知道你這句話是什麼意思,如在不同的語言地區,人們使用了不同的語言,不懂得這個語言發音規則以及音節代表的是什麼,你就聽不懂,如果別人知道就能聽的懂。

實現直譯器有下面幾步,

1.定義乙個直譯器介面,

public abstract class abstractexpression
2.實現具體的語法:

public class tellengthexpression extends abstractexpression		

@override

public boolean interpreter(string context)

return false; }

}

這是乙個判斷長度是否正確的直譯器。

public class telnumcheck extends abstractexpression		

@override

public boolean interpreter(string context)

return false; }

}

這是乙個判斷是開始字母為1的直譯器。

public class telnocheck extends abstractexpression		

@override

public boolean interpreter(string context)

return false; }

}

這是乙個將長度判斷和首字母為1判斷與操作的直譯器。

3.使用直譯器

public class interpreterdemo

輸出結果

13823457899is tel number:true

1346789234is tel number:false

直譯器模式

include include include include include using namespace std 直譯器模式 給定一種語言,定義它的文法的一種表示,並定義乙個直譯器 該直譯器使用該表示來解釋語言中的句子 類似於程式語言或者指令碼 假設情景是乙個指令碼控制系統 wasd上下左右方...

直譯器模式

1 模式定義 直譯器模式 interpreter pattern 定義語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的 語言 意思是使用規定格式和語法的 它是一種類行為型模式。2 模式結構 直譯器模式包含如下角色 abstractexpression 抽象表示式 terminalexpre...

直譯器模式

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