<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-從地獄中重生
    主站蜘蛛池模板: 91嫩草亚洲精品| 久久久久一级精品亚洲国产成人综合AV区 | 五月婷婷免费视频| 免费看国产曰批40分钟| 国产AV日韩A∨亚洲AV电影| 国产资源免费观看| 杨幂最新免费特级毛片| 亚洲成av人片不卡无码久久| 免费高清A级毛片在线播放| mm1313亚洲国产精品美女| 免费的黄网站男人的天堂| 久久精品亚洲乱码伦伦中文| 久久精品成人免费观看97| 亚洲AV无码乱码国产麻豆| 久久综合给合久久国产免费| 亚洲短视频在线观看| 野花高清在线电影观看免费视频 | 亚洲精品无码久久| 亚洲国产精品一区二区第四页| 人成电影网在线观看免费| 亚洲乱码国产乱码精品精| 久9热免费精品视频在线观看| 亚洲国产精品线观看不卡| 大香人蕉免费视频75| 中美日韩在线网免费毛片视频| 亚洲中文字幕无码久久综合网| 久久青草精品38国产免费| 色噜噜亚洲男人的天堂| 免费在线观看亚洲| 久久成人免费电影| 色天使亚洲综合在线观看| 国产日韩成人亚洲丁香婷婷| 久久久99精品免费观看| 亚洲欧美综合精品成人导航| 亚洲欧洲精品成人久久奇米网| 日韩精品无码免费专区网站| 2019亚洲午夜无码天堂| 亚洲午夜精品第一区二区8050| 18禁美女裸体免费网站| 国产偷国产偷亚洲高清人| 亚洲AV成人精品网站在线播放|