<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之旅 廣告
                # 章節十一 處理概括關系 有一批重構手法專門用來處理「概括關系」(generalization ;譯注:這里指的是class 繼承」這檔事),其中主要是將函數(methods)上下移動于繼承體系之中。 Pull Up Field 和 Pull Up Method 都用于將class 特性向繼承體系的上端移動,Push Down Method 和 Push Down Field 則將class 特性向繼承體系的下端移動。構造函數比較難以向上拉動,因此專門有一個Pull Up Constructor Body 處理它。我們不會將構造函數往下推,因為 Replace Constructor with Factory Method 通常更管用。 如果有若干函數大體上相同,只在細節上有所差異,可以使用Form Template Method 將它們的共同點和不同點分開。 除了在繼承體系中移動class 特性之外,你還可以建立新class ,改變整個繼承體系。 Extract Subclass、Extract Superclass 和 Extract Interface 都是這樣的重構手法,它們在繼承體系的不同位置構造出新元素。如果你想在型別系統(type system)中標示(mark)一小部分函數, Extract Interface 特別有用。如果你發現繼承體系中的某些classes 沒有存在必要,可以使用 Collapse Hierarchy 將它們移除。 有時候你會發現繼承并非最佳選擇,你真正需要的其實是委托(delegation),那么, Replace Inheritance with Delegation 可以幫助你把繼承改為委托。有時候你又會想要做反向修改,此時就可使用Replace Delegation with Inheritance。
                  <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>

                              哎呀哎呀视频在线观看