設計模式In Java 十三 直譯器模式

2021-09-12 04:13:15 字數 1075 閱讀 2601

直譯器模式(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...