国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

wordpress tag 收錄肇慶seo按天收費

wordpress tag 收錄,肇慶seo按天收費,設(shè)計站,微網(wǎng)站建設(shè)公司首選相關(guān)文章:技術(shù)成神之路:二十三種設(shè)計模式(導(dǎo)航頁) 介紹 解釋器模式(Interpreter Pattern)是一種行為設(shè)計模式,用于定義一種語言的文法表示,并提供一個解釋器來處理這種文法。它用于處理具有特定語法或表達…

在這里插入圖片描述
相關(guān)文章:技術(shù)成神之路:二十三種設(shè)計模式(導(dǎo)航頁)

介紹

解釋器模式(Interpreter Pattern)是一種行為設(shè)計模式,用于定義一種語言的文法表示,并提供一個解釋器來處理這種文法。它用于處理具有特定語法或表達式的場景。

1. 定義


解釋器模式定義了一種語言的文法表示,并定義一個解釋器用來解釋語言中的句子。

2. 主要作用


  • 提供一種方式來評估語言的文法或表達式:解釋器模式允許系統(tǒng)解析和執(zhí)行由文法定義的語言。
  • 簡化對復(fù)雜表達式的處理:通過將復(fù)雜的表達式分解為簡單的表達式,可以降低處理的復(fù)雜性。
  • 易于擴展:新的語法可以通過添加新的終結(jié)符或非終結(jié)符類輕松擴展。

3. 解決的問題


  • 處理和解析特定語言或表達式的需求。
  • 提供一種清晰的方式來定義文法及其解釋。
  • 使得對文法和表達式的擴展變得簡單明了。

4. 模式原理


包含角色:

  1. 抽象表達式(Expression): 一個接口或抽象類,定義了解釋方法(interpret())。所有具體表達式都要實現(xiàn)這個接口。
  2. 終結(jié)符表達式(TerminalExpression): 具體的表達式類,代表語法中的終結(jié)符。在解釋器中,這些類通常與輸入的基本元素對應(yīng),如某個具體的字符或詞匯。
  3. 非終結(jié)符表達式(NonterminalExpression): 這也是一個具體的表達式類,用于解釋由多個表達式組成的復(fù)雜表達式。它通常用于構(gòu)造更復(fù)雜的語法結(jié)構(gòu),并實現(xiàn)解釋方法。
  4. 上下文(Context): 上下文對象用于存儲解釋器的狀態(tài)信息,包括輸入字符串和其他相關(guān)數(shù)據(jù)。它在解析過程中提供必要的上下文信息給各個表達式。

UML類圖:
在這里插入圖片描述
示例代碼:

// 抽象表達式
interface Expression {int interpret();
}// 終結(jié)符表達式:數(shù)字
class Number implements Expression {private int number;public Number(int number) {this.number = number;}@Overridepublic int interpret() {return number;}
}// 非終結(jié)符表達式:加法
class Add implements Expression {private Expression leftExpression;private Expression rightExpression;public Add(Expression left, Expression right) {this.leftExpression = left;this.rightExpression = right;}@Overridepublic int interpret() {return leftExpression.interpret() + rightExpression.interpret();}
}// 非終結(jié)符表達式:減法
class Subtract implements Expression {private Expression leftExpression;private Expression rightExpression;public Subtract(Expression left, Expression right) {this.leftExpression = left;this.rightExpression = right;}@Overridepublic int interpret() {return leftExpression.interpret() - rightExpression.interpret();}
}

調(diào)用:

public class InterpreterDemo {public static void main(String[] args) {// 表達式:3 + 5Expression three = new Number(3);Expression five = new Number(5);Expression add = new Add(three, five);System.out.println("Result: " + add.interpret());  // 輸出: Result: 8// 表達式:10 - 2Expression ten = new Number(10);Expression two = new Number(2);Expression subtract = new Subtract(ten, two);System.out.println("Result: " + subtract.interpret());  // 輸出: Result: 8}
}

emm…這個模式才是冷門中的冷門,由于只能在特定領(lǐng)域使用,讓我們動手寫的情況很少,一般只是在源碼中會見到,下面就舉幾個源碼中的例子吧,加深下印象:

1. Java 正則表達式
正則大家都用過吧,可以把一些特定的字符 通過正則轉(zhuǎn)化為我們預(yù)期的效果,在正則表達式中 Pattern類負(fù)責(zé)解析正則表達式的語法,而Matcher類則用于執(zhí)行該模式的匹配。

2. Android 自定義 View 的屬性解析
自定義視圖會解析 XML 中定義的屬性,在自定義視圖的構(gòu)造函數(shù)中,通過AttributeSet來解析XML中定義的屬性,類似于解釋器的功能。

3. DSL (領(lǐng)域特定語言) 解析
DSL 正如其名,在特定領(lǐng)域下的語言,這個語言可以由你自己定制,常見的在Kotlin中 有很多語法糖 都運用了DSL,在一些指定場景下很實用,在Android開發(fā)中,Gradle構(gòu)建腳本使用一種基于Groovy的DSL來定義構(gòu)建配置,Gradle解析器使用了解釋器模式。

這個模式,不要求一定要掌握,但要見到認(rèn)識,給面試官能吹nb就行了😎。

5. 優(yōu)缺點


優(yōu)點:

  • 易于改變和擴展文法。
  • 容易實現(xiàn)簡單的語言解釋器。

缺點:

  • 對復(fù)雜的文法不太適用,類數(shù)目會增加。
  • 解釋器模式會引起性能問題。

6. 應(yīng)用場景


  • 解析特定的語言或格式(例如:數(shù)學(xué)表達式、SQL查詢、正則表達式)。
  • 定義簡單的文法規(guī)則并提供語法分析功能。
  • 在領(lǐng)域特定語言(DSL)中,提供一種簡單的語法解析方式。

7. 總結(jié)


解釋器模式適用于簡單的語法解析和解釋場景,但不適合復(fù)雜的語法結(jié)構(gòu)。它通過類和對象的組合,靈活定義和擴展語法結(jié)構(gòu)。

至此,23種設(shè)計模式告一段落

http://aloenet.com.cn/news/30114.html

相關(guān)文章:

  • 衡水企業(yè)做網(wǎng)站多少錢使用百度地圖導(dǎo)航收費嗎
  • 長沙銘萬做網(wǎng)站上海網(wǎng)站快速排名優(yōu)化
  • 服裝廠網(wǎng)站模板營銷策劃公司名稱
  • 網(wǎng)站公安備案多久審核app推廣兼職是詐騙嗎
  • 廣州互聯(lián)網(wǎng)項目工作室seo外包公司怎么樣
  • h5網(wǎng)站建設(shè)的具體內(nèi)容企業(yè)營銷網(wǎng)站
  • 上海網(wǎng)站建設(shè)管理推廣的渠道和方法有哪些
  • 鄭州建設(shè)企業(yè)網(wǎng)站百度一下 你就知道官方
  • ??谄髽I(yè)網(wǎng)站建設(shè)愛站網(wǎng)關(guān)鍵詞挖掘查詢工具
  • p2p網(wǎng)站開發(fā)的多少錢一個產(chǎn)品的網(wǎng)絡(luò)營銷方案
  • 大氣集團網(wǎng)站源碼科學(xué)新概念seo外鏈平臺
  • 網(wǎng)站建設(shè)圖文百度網(wǎng)頁網(wǎng)址
  • 做網(wǎng)站購買服務(wù)器國外常用的seo站長工具
  • 企業(yè)網(wǎng)站建設(shè) 西寧公司網(wǎng)站域名續(xù)費一年多少錢
  • 外貿(mào)免費開發(fā)網(wǎng)站建設(shè)網(wǎng)絡(luò)廣告營銷方案策劃內(nèi)容
  • 佛山建站專寧波抖音seo搜索優(yōu)化軟件
  • 日文設(shè)計網(wǎng)站自動點擊器下載
  • 海南海口網(wǎng)站開發(fā)公司怎么進行網(wǎng)站推廣
  • 響應(yīng)式布局網(wǎng)頁seo入門教程視頻
  • 廈門市建設(shè)局網(wǎng)站住房保障2018怎么制作自己的網(wǎng)站
  • 網(wǎng)絡(luò)廣告設(shè)計案例網(wǎng)站關(guān)鍵詞排名優(yōu)化方法
  • 網(wǎng)站建設(shè)cach目錄營銷策劃培訓(xùn)
  • 自己放題庫做測試網(wǎng)站網(wǎng)絡(luò)營銷產(chǎn)品的首選產(chǎn)品
  • 好的網(wǎng)站和網(wǎng)頁有哪些在線培訓(xùn)網(wǎng)站次要關(guān)鍵詞
  • 無錫h5網(wǎng)站建設(shè)廣州高端網(wǎng)站建設(shè)公司
  • 自己怎么做網(wǎng)站優(yōu)化市場調(diào)研怎么寫
  • 怎樣才能做好網(wǎng)絡(luò)推廣優(yōu)化大師怎么下載
  • 免費網(wǎng)站建設(shè)哪個好百度app下載官方免費最新版
  • 網(wǎng)站模板如何制作武漢網(wǎng)站競價推廣
  • 公司做網(wǎng)站的 oa辦公系統(tǒng)seo搜索引擎