<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之旅 廣告
                ### Switch Statements(switch驚悚現身) 面向對象程序的一個最明顯特征就是:少用switch (或case)語句。從本質上說, switch語句的問題在于重復(duplication)。你常會發現同樣的switch語句散布 于不同地點。如果要為它添加一個新的子句,你必須找到所有switch語句 并修改它們。面向對象中的多態(polymorphism )概念可為此帶來優雅的解決辦法。 大多數時候,一看到switch語句你就應該考慮以「多態」來替換它。問題是態 該出現在哪兒?switch語句常常根據 type code(型別碼)進行選擇,你要的是「與 該 type code相關的函數或class」。所以你應該使用Extract Method 將switch語句提煉到一個獨立函數中,再以Move Method 將它搬移到需要多態性的那個class里頭。此時你必須決定是否使用 Replace Type Code with Subclasses 或 Replace Type Code with State/Strategy。一旦這樣完成繼承結構之后, 你就可以運用Replace Conditional with Polymorphism了。 如果你只是在單一函數中有些選擇事例,而你并不想改動它們,那么「多態」就有 點殺雞用牛刀了。這種情況下Replace Parameter with Explicit Methods是個不錯的選擇。如果你的選擇條件之一是null,可以試試Introduce Null Object。
                  <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>

                              哎呀哎呀视频在线观看