ivaneeo's blog

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

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
            • 作法(Mechanics)
            • 檢查函數(shù),確定它不具多態(tài)性(is not polymorphic).==>如果subclass繼承了這個(gè)函數(shù),就不要將此函數(shù)inline化,因?yàn)閟ubclass無(wú)法覆寫(xiě)(override)一個(gè)根本不存在的函數(shù).
            • 找出這個(gè)函數(shù)的所有被調(diào)用點(diǎn).
            • 將這個(gè)函數(shù)的所有被調(diào)用點(diǎn)都替換為函數(shù)本體(代碼).
            • 編譯,測(cè)試.
            • 刪除該函數(shù)的定義.

          被我這樣一寫(xiě),Inline Method(117)似乎很簡(jiǎn)單.但情況往往并非如此.對(duì)于遞歸調(diào)用,多返回點(diǎn),inline至另一個(gè)對(duì)象中而該對(duì)象并無(wú)提供訪問(wèn)函數(shù)(accessors)......,每一種情況我都可以寫(xiě)上好幾頁(yè).我之所以不寫(xiě)這些特殊情況,原因很簡(jiǎn)單:如果你遇到了這樣的復(fù)雜情況,那么就不應(yīng)該使用這個(gè)重構(gòu)手法.

          posted on 2005-08-24 17:28 ivaneeo 閱讀(196) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): refactoring-從地獄中重生
          主站蜘蛛池模板: 河东区| 龙泉市| 昆明市| 靖宇县| 苏尼特右旗| 泽州县| 合阳县| 昌黎县| 南漳县| 衡东县| 浠水县| 许昌县| 济宁市| 清新县| 东安县| 洛阳市| 上高县| 东阳市| 西丰县| 商洛市| 团风县| 军事| 麻江县| 安溪县| 岐山县| 梁山县| 聂荣县| 友谊县| 高台县| 兴山县| 英超| 海林市| 宾川县| 巴马| 句容市| 浦县| 茂名市| 益阳市| 广南县| 砚山县| 乐昌市|