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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                狀態模式(State):允許對象在內部狀態改變時改變它的行為,對象看起來好像修改了它的類。狀態模式說白了就是一個對象有不同的狀態,不同的狀態對應不同的行為,它其實是對switch case這樣的語句的拓展。 ##一、uml建模: ![](https://box.kancloud.cn/2016-02-19_56c7196e28b25.jpg) ##二、代碼實現 ~~~ /** * 示例:狀態模式-- 一個對像有不同的狀 態,不同的狀態對應不同的行為 * * 下面四則運算為例 */ interface State { public double operate(double num1, double num2); } /** * 加法 */ class AddOperator implements State { @Override public double operate(double num1, double num2) { return num1 + num2; } } /** * 減法 */ class SubOperator implements State { @Override public double operate(double num1, double num2) { return num1 - num2; } } /** * 學生 */ class Student { private State state; public Student(State state) { this.state = state; } /** * 設置狀態 */ public void setState(State state) { this.state = state; } public double operate(double num1, double num2) { return state.operate(num1, num2); } } /** * 客戶端測試類 * * @author Leo */ public class Test { public static void main(String[] args) { Student s1 = new Student(new AddOperator()); System.out.println(s1.operate(12, 23)); /** * 改變狀態,即改變了行為 --> 加法運算變成了減法運算 */ s1.setState(new SubOperator()); System.out.println(s1.operate(12, 23)); } } ~~~ ##三、總結 封裝基類狀態的行為,并將行為委托到當前狀態。
                  <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>

                              哎呀哎呀视频在线观看