劍心博客

          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設計模式
          主站蜘蛛池模板: 汉中市| 赤壁市| 唐海县| 南澳县| 商南县| 昌吉市| 鄂州市| 莆田市| 石阡县| 客服| 沂南县| 宜川县| 翁牛特旗| 宜章县| 宝兴县| 靖西县| 班玛县| 吴堡县| 汝城县| 集贤县| 井陉县| 榆林市| 东方市| 福建省| 深州市| 大丰市| 凌源市| 长岭县| 青河县| 汉寿县| 砀山县| 广德县| 岐山县| 常山县| 清水县| 绩溪县| 阿克陶县| 弋阳县| 北安市| 柳江县| 湛江市|