posts - 73,  comments - 55,  trackbacks - 0

          Interpreter解釋器模式定義:
          定義語言的文法 ,并且建立一個(gè)解釋器來解釋該語言中的句子.(后面不用看了)

          Interpreter似乎使用面不是很廣,它描述了一個(gè)語言解釋器是如何構(gòu)成的,在實(shí)際應(yīng)用中,我們可能很少去構(gòu)造一個(gè)語言的文法.我們還是來簡(jiǎn)單的了解一下:

          首先要建立一個(gè)接口,用來描述共同的操作.

          public interface AbstractExpression {
             void interpret( Context context );
          }

          再看看包含解釋器之外的一些全局信息

          public interface Context { }

          AbstractExpression的具體實(shí)現(xiàn)分兩種:終結(jié)符表達(dá)式和非終結(jié)符表達(dá)式:

          public class TerminalExpression implements AbstractExpression {
             public void interpret( Context context ) { }
          }

          對(duì)于文法中每一條規(guī)則,非終結(jié)符表達(dá)式都必須的:
          public class NonterminalExpression implements AbstractExpression {
             private AbstractExpression successor;
            
             public void setSuccessor( AbstractExpression successor ) {
               this.successor = successor;
             }

             public AbstractExpression getSuccessor() {
               return successor;
             }

             public void interpret( Context context ) { }
          }

          posted on 2006-08-01 11:45 保爾任 閱讀(501) 評(píng)論(0)  編輯  收藏 所屬分類: Design Patten

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 南投市| 长兴县| 东方市| 县级市| 获嘉县| 余姚市| 宁南县| 湘阴县| 皋兰县| 沙湾县| 乌鲁木齐市| 木兰县| 鹿泉市| 鲜城| 米脂县| 册亨县| 威海市| 全州县| 南阳市| 芷江| 安乡县| 裕民县| 怀远县| 湘西| 峡江县| 龙里县| 绍兴县| 钟山县| 阿坝| 扎兰屯市| 扎赉特旗| 西藏| 兴化市| 香格里拉县| 炎陵县| 乌鲁木齐市| 山丹县| 屯昌县| 青阳县| 任丘市| 潼关县|