<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 閱讀(497) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 亚洲人色婷婷成人网站在线观看| 曰批全过程免费视频在线观看无码| 国产精品国产免费无码专区不卡| 中文字幕乱码一区二区免费| 免费a级毛片永久免费| 亚洲综合无码一区二区| 污视频网站免费在线观看| 国产成人精品久久免费动漫| 在线亚洲精品自拍| mm1313亚洲国产精品无码试看 | 香蕉视频免费在线| 91福利免费视频| 亚洲欧洲中文日韩av乱码| 亚洲欧洲自拍拍偷综合| 曰批全过程免费视频在线观看无码| 最近最新MV在线观看免费高清| 久久精品女人天堂AV免费观看| 大地资源在线观看免费高清| 国产精品亚洲精品| 久久免费观看国产精品88av| 亚洲视频在线一区二区| 美女裸免费观看网站| 在线亚洲97se亚洲综合在线| 久久国产乱子免费精品| 国产亚洲福利在线视频| 麻豆视频免费播放| 久久久久亚洲精品无码网址色欲 | 免费夜色污私人影院网站电影| 2020因为爱你带字幕免费观看全集 | 香蕉97超级碰碰碰免费公| 亚洲国产一区二区三区青草影视| 亚洲高清无在码在线无弹窗| 一级毛片大全免费播放| 免费一级成人毛片| 久久国产精品成人免费| 又爽又黄无遮挡高清免费视频| 亚洲女人18毛片水真多| 免费观看无遮挡www的视频 | 久久久久亚洲av无码专区蜜芽| 亚洲精品视频免费看| 国产桃色在线成免费视频|