iT邦幫忙

第 12 屆 iThome 鐵人賽

1
Software Development

你終究都要學設計模式的,那為什麼不一開始就學呢?系列 第 45

Day45. 解譯器模式

本文同步更新於blog

Interpreter Pattern

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

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


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

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

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


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

(例如:SQL, HTML, Regular Expressions)


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

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


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


上一篇
Day44. 範例:文字積木 (蠅量模式)
下一篇
Day46. 範例:摩斯電碼 (解譯器模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言