<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    最單純的Duplicated Code就是[同一個class內的兩個函數含有相同表達式(express)]。這時候你需要做的就是采用Extract Method(110)提煉出重復的代碼,然后讓這兩個地點都調用被提煉出來的那一段代碼。

    另一種常見情況就是[兩個互為兄弟(sibling)的subclass內含相同表達式]。要避免這種情況,只需對兩個classes都使用Extract Method(110),然后再對被提煉出來的代碼使用Pull Up Method(332),將它推入superclass內。如果代碼之間是類似,并非完全相同,那么就得運用Extract Method(110)將相似部分和差異部分割開,構成單獨一個函數。然后你可能發現或許可以運用Form Template Method(345)獲得一個Template Method設計模式。如果有些函數以不同的算法做相同的事,你可以擇定其中較清晰的一個,并使用Substitute Algorithm(139)將其他函數的算法替換掉。

    如果兩個毫不相關的classes內出現Duplicated Code,你應該考慮對其中一個使用Extract Class(149), 將重復代碼提煉到一個獨立class中,然后在另一個class內使用這個新class。但是,重復代碼所在的函數也可能的確只應該屬于某個class, 另一個class只能調用它,抑或這個函數可能屬于第三個class,而另兩個classes應該引用這第三個class。你必須決定這個函數放在哪個最 合適,并確保它被安置后就不會再在其他任何地方出現。
    posted on 2005-08-16 17:03 ivaneeo 閱讀(501) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 国产va免费精品观看精品| 免费成人高清在线视频| 四虎永久在线精品免费网址 | 久久久久免费精品国产| 亚洲午夜福利在线观看| 久久精品无码专区免费| 国产亚洲精品精品国产亚洲综合| 美女视频黄频a免费大全视频| 免费真实播放国产乱子伦| 免费国产高清毛不卡片基地| 国产免费av一区二区三区| 九九久久精品国产免费看小说| 亚洲国产aⅴ综合网| 美女网站在线观看视频免费的| 久久精品国产亚洲一区二区三区| 国产线视频精品免费观看视频| 亚洲AV永久无码精品| 亚洲国产精品免费视频| 亚洲国产亚洲综合在线尤物| 成人无码区免费视频观看| 亚洲Av永久无码精品黑人| 亚洲成a人在线看天堂无码| yellow视频免费看| 久久久久久亚洲精品中文字幕| 无码国产精品一区二区免费模式 | 国产免费黄色无码视频| 亚洲av无码不卡一区二区三区| 国产精品入口麻豆免费观看| 亚洲AV噜噜一区二区三区| 久久国产成人精品国产成人亚洲| 免费在线看黄的网站| 久久久久亚洲国产| 亚洲国产精品第一区二区三区| 9久热精品免费观看视频| 亚洲嫩模在线观看| 日本大片在线看黄a∨免费| 99re8这里有精品热视频免费| 亚洲精品中文字幕麻豆| 国产一区二区三区免费视频| 中文字幕日本人妻久久久免费| 亚洲首页国产精品丝袜|