Interpreter Pattern
給定一個語言,定義它的語法表示與文法。
利用不同的表達式來翻譯語言中的句子。
Example: 摩斯電碼
解譯器模式會將類別分為兩類:
分別是語境類別 (Context) 與 表達式類別 (Expression) 。
其中語境類別為待翻譯的資料。
透過客戶端依序呼叫不同的表達式類別來完成翻譯。
通常一種文法(規則)會對應一個表達式。
語言通常會是領域特定語言 (Domain Specific Language) ,
即專注於某個應用程式領域的計算機語言。
(例如:SQL, HTML, Regular Expressions)
優點:
用來定義簡單語言的文法,使它們可以被翻譯。
缺點:
程式碼複雜度提高。
當文法變得複雜時,難以維護。
ʕ •ᴥ•ʔ:程式界的翻譯蒟蒻!