定義一個(gè)語(yǔ)言的文法,并創(chuàng)建一個(gè)解釋器去解釋該語(yǔ)言中的句子,這里的“語(yǔ)言”是指使用規(guī)定格式和語(yǔ)法的代碼。
結(jié)構(gòu)圖
角色與理解
定義一個(gè)語(yǔ)言的文法,并創(chuàng)建一個(gè)解釋器去解釋該語(yǔ)言中的句子,這里的“語(yǔ)言”是指使用規(guī)定格式和語(yǔ)法的代碼。
解釋器模式共分為三種角色:
- AbstractExpression(抽象表達(dá)式):終結(jié)符表達(dá)式與非終結(jié)符表達(dá)式的共同父類,聲明了抽象的解釋行為。
- TerminalException(終結(jié)符表達(dá)式):抽象表達(dá)式的子類,包含文法中終結(jié)符的解釋操作。
- NonterminalException(非終結(jié)符表達(dá)式):抽象表達(dá)式的子類,實(shí)現(xiàn)了文法中非終結(jié)符的解釋操作,內(nèi)部包含非終結(jié)符表達(dá)式或者終結(jié)符表達(dá)式。
- Context(環(huán)境類):上下文環(huán)境
終結(jié)符表達(dá)式是“一句話”中包含的所有最終解釋單元,非終結(jié)符表達(dá)式將一組終結(jié)符表達(dá)式連接,完成“一句話”的解釋,非終結(jié)符表達(dá)式將“幾句話”連接,完成一段話的解釋。
核心代碼
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
本文提出了一種基于入侵行為模式的告警關(guān)聯(lián)方式。入侵行為模式是定義在時(shí)間基礎(chǔ)上的一組謂詞公式,其實(shí)質(zhì)是通過(guò)時(shí)間限制聯(lián)系在一起的入侵事件的集合。該方法在對(duì)大量告
發(fā)表于 08-13 08:35
?6次下載
根據(jù)不同的應(yīng)用場(chǎng)景與意圖,設(shè)計(jì)模式主要分為創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式三類。本文主要探索行為
發(fā)表于 10-31 14:24
?945次閱讀
備忘錄設(shè)計(jì)模式(Memento Design Pattern)是一種行為型設(shè)計(jì)模式,它的主要目的是在不破壞對(duì)象封裝性的前提下,捕捉和保存一個(gè)對(duì)象的內(nèi)部狀態(tài)
發(fā)表于 06-06 11:19
?808次閱讀
Java解釋器是一種將Java程序翻譯成機(jī)器可執(zhí)行代碼的工具。
發(fā)表于 06-06 11:22
?854次閱讀
訪問(wèn)者設(shè)計(jì)模式是一種行為型設(shè)計(jì)模式,用于將算法與對(duì)象結(jié)構(gòu)分離。它允許你在不改變對(duì)象結(jié)構(gòu)的前提下定義新的操作。
發(fā)表于 06-06 11:25
?819次閱讀
提供一個(gè)中介者完成對(duì)一系列操作的封裝,降低對(duì)象間的系統(tǒng)耦合度。中介者模式又稱為調(diào)停者模式。
發(fā)表于 06-06 17:42
?702次閱讀
備忘錄模式(Memento Pattern)保存一個(gè)對(duì)象的某個(gè)狀態(tài),以便在適當(dāng)?shù)臅r(shí)候恢復(fù)對(duì)象。備忘錄模式屬于行為型模式。
發(fā)表于 06-07 11:16
?859次閱讀
在策略模式(Strategy Pattern)中,一個(gè)類的行為或其算法可以在運(yùn)行時(shí)更改。這種類型的設(shè)計(jì)模式屬于行為型模式。
發(fā)表于 06-07 11:18
?666次閱讀
在狀態(tài)模式(State Pattern)中,類的行為是基于它的狀態(tài)改變的。這種類型的設(shè)計(jì)模式屬于行為型模式。
發(fā)表于 06-07 11:20
?617次閱讀
在訪問(wèn)者模式(Visitor Pattern)中,我們使用了一個(gè)訪問(wèn)者類,它改變了元素類的執(zhí)行算法。
發(fā)表于 06-07 15:11
?757次閱讀
在模板模式中,一個(gè)抽象類公開(kāi)定義了執(zhí)行它的方法的方式/模板。
發(fā)表于 06-07 15:13
?593次閱讀
定義對(duì)象之間的一種一對(duì)多依賴關(guān)系,使得每一個(gè)對(duì)象發(fā)生狀態(tài)的變化時(shí),其相關(guān)依賴對(duì)象皆得到通知并被自動(dòng)更新,又稱為發(fā)布-訂閱模式、模型-視圖模式、源-監(jiān)聽(tīng)器模式或從屬者
發(fā)表于 06-07 16:56
?674次閱讀
接下來(lái)介紹行為型設(shè)計(jì)模式在UVM中的應(yīng)用。
發(fā)表于 08-09 14:01
?713次閱讀
噪聲的模式與行為,區(qū)別Earth與Ground的重要性
發(fā)表于 12-01 16:04
?541次閱讀
解釋器模式(Interpreter Pattern)應(yīng)該是 GoF 的 23 種設(shè)計(jì)模式中使用頻率最少的一種了,它的應(yīng)用場(chǎng)景較為局限。
發(fā)表于 04-01 11:01
?709次閱讀
評(píng)論