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

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

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

    ivaneeo's blog

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

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    如果你看到用戶向一個對象索求(request)另一個對象,然后再向后者索求另一個對象,然后再索求另一個對象。。。。。。這就是Message Chain。實際代碼中你看到的可能是一長串getThis()或一長串臨時變量。采取這種方式,意味客戶將與查找過程中的航行結(jié)構(gòu)(structure of navigation)緊密耦合。一旦對象間的關(guān)系發(fā)生任何變化,客戶端就不得不作出相應(yīng)修改。

    這時候你應(yīng)該使用Hide Delegate(157)。你可以在Message Chain的不同位置進(jìn)行這種重構(gòu)手法。理論上你可以重構(gòu)Message Chain上的任何一個對象,但這么做往往會把所有中介對象(intermediate object)都變成Middle Man.通常更好的選擇是:先觀察Message Chain最終得到的對象是用來干什么的,看看能否以Extract Method(110)把使用該對象的代碼提煉到一個獨(dú)立函數(shù)中,再運(yùn)用Move Method(142)把這個函數(shù)推入Message Chain。如果這條鏈上的某個對象有多位客戶打算航行此航線的剩余部分,就加一個函數(shù)來做這件事。
    posted on 2005-08-19 15:36 ivaneeo 閱讀(743) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 国产精品va无码免费麻豆| 在线播放高清国语自产拍免费 | 黄网址在线永久免费观看| 亚洲自偷精品视频自拍| 性色午夜视频免费男人的天堂 | 亚洲福利视频一区| 久久国产精品免费观看| 亚洲AV无码成人精品区在线观看 | 久久精品国产亚洲av水果派| 日本在线免费观看| 久久久久亚洲精品日久生情| 国产精品久久久久久久久免费| 亚洲婷婷综合色高清在线| 九九精品免费视频| 亚洲乱码av中文一区二区| 国产在线98福利播放视频免费| 国产精品亚洲五月天高清| 亚洲精品WWW久久久久久| 岛国精品一区免费视频在线观看 | 亚洲人成网站色在线入口| 久久国产乱子伦精品免费午夜| 亚洲情XO亚洲色XO无码| 最近免费最新高清中文字幕韩国 | 国产精品亚洲一区二区三区在线观看| 韩国二级毛片免费播放| 成年免费大片黄在线观看com| 亚洲国产精品无码中文字| 永久黄色免费网站| 亚洲欧好州第一的日产suv| 亚洲高清偷拍一区二区三区| 叮咚影视在线观看免费完整版| 亚洲韩国在线一卡二卡| 国产网站在线免费观看| a级毛片毛片免费观看久潮| 亚洲国产成人精品无码一区二区 | 一二三区免费视频| 亚洲精品视频观看| 亚洲第一网站男人都懂| 1区2区3区产品乱码免费| 爱爱帝国亚洲一区二区三区| 亚洲精品白浆高清久久久久久|