解释器设计模式
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
1、解釋器模式是類(lèi)的行為模式
- 給定一個(gè)語(yǔ)言之后,解釋器模式可以定義出其文法的一種表示,并同時(shí)提供一個(gè)解釋器
- 客戶端可以使用這個(gè)解釋器來(lái)解釋這個(gè)語(yǔ)言中的句子
解釋器模式的結(jié)構(gòu)
- 抽象表達(dá)式角色
- 一個(gè)Constant對(duì)象代表一個(gè)布爾常量
- 一個(gè)Variable對(duì)象代表一個(gè)有名變量
- 代表邏輯“與”操作的And類(lèi)
- 客戶端代碼
- 結(jié)果
2、解釋器模式的適用場(chǎng)景
- 有一個(gè)簡(jiǎn)單的語(yǔ)法規(guī)則,比如一個(gè)sql語(yǔ)句,如果我們需要根據(jù)sql語(yǔ)句進(jìn)行rm轉(zhuǎn)換,就可以使用解釋器模式來(lái)對(duì)語(yǔ)句進(jìn)行解釋
- 一些重復(fù)發(fā)生的問(wèn)題,比如加減乘除四則運(yùn)算,但是公式每次都不同,有時(shí)是a+b-c*d,有時(shí)是a*b+c-d,等等等等
- 公式千變?nèi)f化,但是都是由加減乘除四個(gè)非終結(jié)符來(lái)連接的,這時(shí)我們就可以使用解釋器模式
3、注意事項(xiàng)
- 解釋器模式真的是一個(gè)比較少用的模式,因?yàn)閷?duì)它的維護(hù)實(shí)在是太麻煩了
- 想象一下,一坨一坨的非終結(jié)符解釋器,假如不是事先對(duì)文法的規(guī)則了如指掌,或者是文法特別簡(jiǎn)單,則很難讀懂它的邏輯
- 解釋器模式在實(shí)際的系統(tǒng)開(kāi)發(fā)中使用的很少,因?yàn)樗麜?huì)引起效率、性能以及維護(hù)等問(wèn)題
轉(zhuǎn)載于:https://my.oschina.net/u/3847203/blog/1839545
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
- 上一篇: CentOS7 Python3安装red
- 下一篇: ASP.NET Core Identit