直譯器模式(interpreter pattern
):定義乙個語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的「語言」是指使用規定格式和語法的**。直譯器模式是一種類行為型模式。
光看定義或名字就能明白,解釋其模式就是將一定的文法解釋成程式可以理解的結構,然後輸出結果,比如輸入乙個四則運算表示式計算出結果、寫乙個計算機語言的直譯器等等。
現在有乙個程式要讀取oracle的配置檔案,比如tnsname.ora,listener.ora等以ora結尾的配置檔案,返回可以在**中可以操作的資料結構。首先是不要重複造輪子,幾經搜尋發現並沒有這樣的工具,於是查閱官方文件,根據語法規則自己實現乙個直譯器,語法規則參考:syntax rules for configuration files
示例:
public
class
testinterpreter
@test
public
void
test1()
throws orafileparseexception
@test
public
void
test2()
throws orafileparseexception
@test
public
void
test3()
throws orafileparseexception
@test
public
void
test4()
throws orafileparseexception
@test
public
void
test5()
throws orafileparseexception
}}
直譯器模式的主要優點如下:
直譯器模式的主要缺點如下:
在以下情況下可以考慮使用直譯器模式:
python設計模式(十三) 直譯器模式
此前已經將創造型模式 結構性模式分享了,後面將分享模式設計中的另一種典型模式 行為型模式。創造型模式是解決實體的生成問題 結構性模式是為了解決實體的組合 搭配問題 而行為型設計模式的出現是為了解決不同實體通訊的問題。直譯器模式 開發者自定義一種 有內涵 的語言 或者叫字串 並設定相關的解釋規則,輸入...
python設計模式(十三) 直譯器模式
此前已經將創造型模式 結構性模式分享了,後面將分享模式設計中的另一種典型模式 行為型模式。創造型模式是解決實體的生成問題 結構性模式是為了解決實體的組合 搭配問題 而行為型設計模式的出現是為了解決不同實體通訊的問題。直譯器模式 開發者自定義一種 有內涵 的語言 或者叫字串 並設定相關的解釋規則,輸入...
(二十三)直譯器模式
定義 直譯器模式 interpreter 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。interpreter.cpp 定義控制台應用程式的入口點。include stdafx.h include include using namespace st...