<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國際加速解決方案。 廣告
                ## **模式的定義** 模板方法模式在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中.模板方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟。例如電商中的訂單支付,我們通常會同時用到多個支付渠道(支付寶、微信支付、銀聯支付等),訂單支付又是標準化的模板流程: ``` 1. 校驗訂單是否合法 2. 支付 3. 支付完成后的訂單處理 ``` 在這一標準化的模板流程中,步驟1和步驟3是一直保持一致的,而步驟2的實現取決于用戶使用哪種支付方式,那么我們就可以把步驟2定義成抽象方法,具體的實現可以交個各自的支付來處理完成。 ## **代碼實現** 需求:基于多支付渠道的訂單支付 1. 定義標準的支付模板方法,規范支付流程 ``` public abstract class PayTempMethod { // 校驗訂單 public void voildOrder() { System.out.println("訂單校驗"); } // 渠道支付,抽象方法,具體的支付邏輯由各自渠道的子類來完成 abstract void payWithChannel(); // 支付完成處理 public void finish() { System.out.println("支付完成訂單處理"); } // 執行支付流程 public void execute() { voildOrder(); payWithChannel(); finish(); } } ``` 2. 支付渠道的子類實現 ``` public class AliPay extends PayTempMethod { @Override void payWithChannel() { System.out.println("支付寶支付"); } } public class WechatPay extends PayTempMethod { @Override void payWithChannel() { System.out.println("微信支付"); } } ``` 3. 客戶端調用 ``` public static void main(String[] args) { AliPay aliPay = new AliPay(); aliPay.execute(); } ```
                  <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>

                              哎呀哎呀视频在线观看