<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                解釋器模式(Interpreter):它定義了對象與對象之間進行某種操作之后會得到什么值。一般主要應用在OOP開發中的編譯器的開發中,所以適用面比較窄。 ##一、uml建模: ![](https://box.kancloud.cn/2016-02-19_56c7196f2a5b2.jpg) ##二、代碼實現 ~~~ /** * 解釋器模式(Interpreter):它定義了對象與對象之間進行某種操作之后會得到什么值。 * * 一般主要應用在OOP開發中的編譯器的開發中,所以適用面比較窄。 * * 示例:先定義一個實體類,封裝兩個變量num1、num2 */ class Entity { private double num1; private double num2; public Entity(double num1, double num2) { this.num1 = num1; this.num2 = num2; } public double getNum1() { return num1; } public void setNum1(double num1) { this.num1 = num1; } public double getNum2() { return num2; } public void setNum2(double num2) { this.num2 = num2; } } /** * 運算接口 */ interface Operatable { public double interpreter(Entity entity); } /** * 加法運算 */ class AddOperation implements Operatable { @Override public double interpreter(Entity entity) { return entity.getNum1() + entity.getNum2(); } } /** * 減法運算 */ class MinusOperation implements Operatable { @Override public double interpreter(Entity entity) { return entity.getNum1() - entity.getNum2(); } } /** * 客戶端測試類 * * @author Leo */ public class Test { public static void main(String[] args) { /** * 創建加法、減法運算 */ AddOperation addOperation = new AddOperation(); MinusOperation minusOperation = new MinusOperation(); /** * 一、分步運算 */ double addResult = addOperation.interpreter(new Entity(20, 30)); double minusResult = minusOperation.interpreter(new Entity(20, 30)); System.out.println("addResult = " + addResult); System.out.println("minusResult = " + minusResult); /** * 二、混合運算 */ double mixResult = new AddOperation().interpreter(new Entity( addOperation.interpreter(new Entity(20, 30)), minusOperation .interpreter(new Entity(40, 50)))); System.out.println("mixResult = " + mixResult); } } ~~~ ##三、總結 解釋器模式用來做各種各樣的解釋器,如正則表達式的解釋器等等。
                  <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>

                              哎呀哎呀视频在线观看