<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                >解釋器模式(Interpreter Pattern): 提供了評估語言的語法或表達式的方式,它屬于行為型模式。這種模式實現了一個表達式接口,該接口解釋一個特定的上下文。這種模式被用在 SQL 解析、符號處理引擎等 ## (一)為什么需要解釋器模式 可以將一個需要解釋執行的語言中的句子表示為一個抽象語法樹 ## (二)解釋器模式UML圖 ![](https://box.kancloud.cn/ee9baab275bf9f57d2c51a8c2fd05fad_902x544.png) ## (三)簡單實例 解釋器模式是開發中最少使用的,因為我們親自編寫語法解析的時候總是非常非常少。而且我能想到的解釋器模式例子,幾乎都是代碼繁多到我自己怕。所以這里我只給出解釋器模式的UML圖通用代碼,感興趣的話可以自己去實現 <?php //抽象表達式 abstract class Expression{ //任何表達式子類都應該有一種解析任務 abstract public function interpreter($context); } //抽象表達式是生成語法集合(語法樹)的關鍵,每個語法集合完成指定語法解析任務 //抽象表達式通過遞歸調用的方法,最終由最小語法單元進行解析完成 //終結符表達式 通常指運算變量 class TerminalExpression extends Expression{ //終結符表達式通常只有一個 public function interpreter($context){ return null; //視具體業務實現 } } //非終結符表達式 通常指運算的符號 class NonterminalExpression extends Expression{ public function interpreter($context){ return null; } }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看