<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
    如果你看到用戶向一個對象索求(request)另一個對象,然后再向后者索求另一個對象,然后再索求另一個對象。。。。。。這就是Message Chain。實際代碼中你看到的可能是一長串getThis()或一長串臨時變量。采取這種方式,意味客戶將與查找過程中的航行結構(structure of navigation)緊密耦合。一旦對象間的關系發生任何變化,客戶端就不得不作出相應修改。

    這時候你應該使用Hide Delegate(157)。你可以在Message Chain的不同位置進行這種重構手法。理論上你可以重構Message Chain上的任何一個對象,但這么做往往會把所有中介對象(intermediate object)都變成Middle Man.通常更好的選擇是:先觀察Message Chain最終得到的對象是用來干什么的,看看能否以Extract Method(110)把使用該對象的代碼提煉到一個獨立函數中,再運用Move Method(142)把這個函數推入Message Chain。如果這條鏈上的某個對象有多位客戶打算航行此航線的剩余部分,就加一個函數來做這件事。
    posted on 2005-08-19 15:36 ivaneeo 閱讀(747) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
    主站蜘蛛池模板: 男人都懂www深夜免费网站| 99久9在线|免费| 成人毛片18女人毛片免费96| 亚洲日本一区二区| 亚洲最新中文字幕| 午夜理伦剧场免费| 亚洲欧洲精品在线| 青青草a免费线观a| 亚洲乱码日产精品一二三| 午夜精品在线免费观看| 噜噜噜亚洲色成人网站| 亚洲国产成人乱码精品女人久久久不卡 | 久久免费高清视频| 亚洲国产综合专区在线电影| 91精品免费观看| 亚洲一区二区三区在线观看蜜桃| 蜜臀98精品国产免费观看| 亚洲欧洲精品在线| 国产成人精品高清免费| 老司机午夜在线视频免费观| 亚洲一区视频在线播放| 日韩电影免费观看| 亚洲国产成人va在线观看网址| 成年人免费视频观看| 男人扒开添女人下部免费视频| 亚洲免费视频观看| 亚洲午夜无码久久久久小说| 午夜亚洲国产成人不卡在线| a色毛片免费视频| va天堂va亚洲va影视中文字幕| 在线观看免费国产视频| 国产在线精品一区免费香蕉| 亚洲欧洲日产专区| 国产hs免费高清在线观看| 成全高清在线观看免费| 亚洲人成图片网站| 成人午夜免费福利视频| 色偷偷亚洲男人天堂| 亚洲AV无码专区国产乱码电影| 永久免费av无码网站韩国毛片| 一级中文字幕免费乱码专区|