<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國際加速解決方案。 廣告
                [TOC] ## 概述 亦稱:Strategy **策略模式**是一種行為設計模式,它能讓你定義一系列算法,并將每種算法分別放入獨立的類中,以使算法的對象能夠相互替換。 假如你需要前往機場。你可以選擇乘坐公共汽車、預約出租車或騎自行車。這些就是你的出行策略。 ## 策略模式結構 ![](https://img.kancloud.cn/e8/67/e86767834e78c87d43370b5c909e0535_880x740.png) 1. 上下文 (Context) 維護指向具體策略的引用, 且僅通過策略接口與該對象進行交流。 2. 策略 (Strategy) 接口是所有具體策略的通用接口, 它聲明了一個上下文用于執行策略的方法。 3. 具體策略 (Concrete Strategies) 實現了上下文所用算法的各種不同變體。 4. 當上下文需要運行算法時, 它會在其已連接的策略對象上調用執行方法。 上下文不清楚其所涉及的策略類型與算法的執行方式。 5. 客戶端 (Client) 會創建一個特定策略對象并將其傳遞給上下文。 上下文則會提供一個設置器以便客戶端在運行時替換相關聯的策略。 ## 適合應用場景 1. 當你想使用對象中各種不同的算法變體, 并希望能在運行時切換算法時, 可使用策略模式。 2. 如果算法在上下文的邏輯中不是特別重要, 使用該模式能將類的業務邏輯與其算法實現細節隔離開來。 3. 當你有許多僅在執行某些行為時略有不同的相似類時, 可使用策略模式。 4. 當類中使用了復雜條件運算符以在同一算法的不同變體中切換時, 可使用該模式。
                  <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>

                              哎呀哎呀视频在线观看