<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國際加速解決方案。 廣告
                10.3 模板方法模式的應用 10.3.1 模板方法模式的優點 ● 封裝不變部分,擴展可變部分 把認為是不變部分的算法封裝到父類實現,而可變部分的則可以通過繼承來繼續擴展。在悍馬模型例子中,是不是就非常容易擴展?例如增加一個H3型號的悍馬模型,很容易呀,增加一個子類,實現父類的基本方法就可以了。 ● 提取公共部分代碼,便于維護 我們例子中剛剛走過的彎路就是最好的證明,如果我們不抽取到父類中,任由這種散亂的代碼發生,想想后果是什么樣子?維護人員為了修正一個缺陷,需要到處查找類似的代碼! ● 行為由父類控制,子類實現 基本方法是由子類實現的,因此子類可以通過擴展的方式增加相應的功能,符合開閉原則。 10.3.2 模板方法模式的缺點 按照我們的設計習慣,抽象類負責聲明最抽象、最一般的事物屬性和方法,實現類完成具體的事物屬性和方法。但是模板方法模式卻顛倒了,抽象類定義了部分抽象方法,由子類實現,子類執行的結果影響了父類的結果,也就是子類對父類產生了影響,這在復雜的項目中,會帶來代碼閱讀的難度,而且也會讓新手產生不適感。 10.3.3 模板方法模式的使用場景 ● 多個子類有公有的方法,并且邏輯基本相同時。 ● 重要、復雜的算法,可以把核心算法設計為模板方法,周邊的相關細節功能則由各個子類實現。 ● 重構時,模板方法模式是一個經常使用的模式,把相同的代碼抽取到父類中,然后通過鉤子函數(見“模板方法模式的擴展”)約束其行為。
                  <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>

                              哎呀哎呀视频在线观看