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