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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### Substitute Algorithm(替換你的算法) 把某個算法替換為另一個更清晰的算法。 將函數本體(method body)替換為另一個算法。 ~~~ String foundPerson(String[] people){ for (int i = 0; i < people.length; i++) { if (people[i].equals ("Don")){ return "Don"; } if (people[i].equals ("John")){ return "John"; } if (people[i].equals ("Kent")){ return "Kent"; } } return ""; } ~~~ => ~~~ String foundPerson(String[] people){ List candidates = Arrays.asList(new String[] {"Don", "John", "Kent"}); for (int i=0; i<people.length; i++) if (candidates.contains(people[i])) return people[i]; return ""; } ~~~ **動機(Motivation)** 我沒試過給貓剝皮,不過我聽說這有好幾種方法,我敢打賭其中某些方法會比另一 些簡單。算法也是如此。如果你發現做一件事可以有更清晰的方式,就應該以較清晰的方式取代復雜方式。「重構」可以把一些復雜東西分解為較簡單的小塊,但有 時你就是必須壯士斷腕,刪掉整個算法,代之以較簡單的算法。隨著對問題有了更 多理解,你往往會發現,在你的原先作法之外,有更簡單的解決方案,此時你就需 要改變原先的算法。如果你開始使用程序庫,而其中提供的某些功能/特性與你自 己的代碼重復,那么你也需要改變原先的算法。 有時候你會想要修改原先的算法,讓它去做一件與原先動作略有差異的事。這時候你也可以先把原先的算法替換為一個較易修改的算法,這樣后續的修改會輕松許多。 使用這項重構手法之前,請先確定自己已經盡可能分解了原先函數。替換一個巨大而復雜的算法是非常困難的,只有先將它分解為較簡單的小型函數,然后你才能很有把握地進行算法替換工作。 **作法(Mechanics)** - 準備好你的另一個(替換用)算法,讓它通過編譯。 - 針對現有測試,執行上述的新算法。如果結果與原本結果相同,重構結束。 - 如果測試結果不同于原先,在測試和調試過程中,以舊算法為比較參照標準。 - 對于每個test case(測試用例),分別以新舊兩種算法執行,并觀察兩者結果是否相同。這可以幫助你看到哪一個test case出現麻煩,以及出現了怎樣的麻煩。
                  <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>

                              哎呀哎呀视频在线观看