劍心博客

          Just for java

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            1 隨筆 :: 29 文章 :: 1 評論 :: 0 Trackbacks

          設計模式之Interpreter(解釋器)

          板橋里人 http://www.jdon.com 2002/05/05

          模式實戰書籍《Java實用系統開發指南》

          Interpreter解釋器模式定義:
          定義語言的文法 ,并且建立一個解釋器來解釋該語言中的句子.

          Interpreter似乎使用面不是很廣,它描述了一個語言解釋器是如何構成的,在實際應用中,我們可能很少去構造一個語言的文法.我們還是來簡單的了解一下:

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

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

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

          public interface Context { }

          AbstractExpression的具體實現分兩種:終結符表達式和非終結符表達式:

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

          對于文法中沒一條規則,非終結符表達式都必須的:

          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-12-11 19:54 powerwind 閱讀(189) 評論(0)  編輯  收藏 所屬分類: 轉來好帖java設計模式
          主站蜘蛛池模板: 吉隆县| 德清县| 通道| 诏安县| 兴海县| 万源市| 郎溪县| 阜康市| 韶山市| 吴堡县| 忻州市| 会昌县| 东平县| 吴旗县| 探索| 崇信县| 太原市| 磐安县| 湖北省| 丘北县| 平南县| 广东省| 福建省| 漳州市| 连山| 桂阳县| 临沂市| 介休市| 洛隆县| 邵武市| 游戏| 永修县| 疏勒县| 沛县| 铜川市| 琼中| 莲花县| 常宁市| 大荔县| 都兰县| 巴林右旗|