解譯器模式

Interpreter Pattern

給定一個語言,定義它的語法表示與文法。

利用不同的表達式來翻譯語言中的句子。

Example: 摩斯電碼


解譯器模式會將類別分為兩類:
分別是語境類別 (Context)表達式類別 (Expression)

其中語境類別為待翻譯的資料。
透過客戶端依序呼叫不同的表達式類別來完成翻譯。

通常一種文法(規則)會對應一個表達式。


語言通常會是領域特定語言 (Domain Specific Language)
即專注於某個應用程式領域的計算機語言。

(例如:SQL, HTML, Regular Expressions)


優點
用來定義簡單語言的文法,使它們可以被翻譯。

缺點
程式碼複雜度提高。
當文法變得複雜時,難以維護。


ʕ •ᴥ•ʔ:程式界的翻譯蒟蒻!