ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          動機(Motivation)
          [函數(shù)搬移]是重構理論的支柱。如果一個class有太多行為,或如果一個class與另一個class有太多合作而形成高度耦合(highly coupled),我就會搬移函數(shù)。通過這種手段,我可以使系統(tǒng)中的classes更簡單,這些classes最終也將更干凈利落地實現(xiàn)系統(tǒng)交付的任務。

          常常我會瀏覽class的所有函數(shù),從中尋找這樣的函數(shù):使用另一個對象的次數(shù)比使用自己所駐對象的次數(shù)還多。一旦我移動了一些值域,就該做這樣的檢查。 一旦發(fā)現(xiàn)[有可能被我搬移]的函數(shù),我就會觀察調用它的那一端、它調用的那一端,以及繼承體系中它的任何一個重定義函數(shù)。然后,我會根據[這個函數(shù)與哪個 對象的交流比較多],決定其移動路徑。

          這往往不是一個容易做出的決定。如果不能肯定是否應該移動一個函數(shù),我就會繼續(xù)觀察其他函數(shù)。移動其他函數(shù)往往會讓這項決定變得容易一些。有時候,即使你 移動了其他函數(shù),還是很難對眼下這個函數(shù)做出決定。其實這也沒什么大不了的。如果真的很難做出決定,那么或許[移動這個函數(shù)與否]并不那么重要。所以,我 會憑本能去做,反正以后總是可以修改的。
          posted on 2005-08-30 10:15 ivaneeo 閱讀(161) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 宣威市| 双江| 武乡县| 英山县| 新宁县| 沅陵县| 中西区| 璧山县| 海城市| 甘谷县| 七台河市| 高州市| 鹿泉市| 固安县| 股票| 南涧| 定日县| 万盛区| 青田县| 栖霞市| 分宜县| 唐海县| 万源市| 万盛区| 江油市| 彭山县| 秦安县| 新余市| 库尔勒市| 离岛区| 阳春市| 正宁县| 东至县| 云阳县| 临猗县| 清水河县| 德令哈市| 巨野县| 华亭县| 米脂县| 大化|