ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          • 作法(Mechanics)
            • 找出[你想去除的指針]的保存值域,檢查它的每一個用戶,判斷是否可以去除該指針.
                • ==>不但要檢查[直接讀取點],也要檢查[直接讀取點]的調(diào)用函數(shù).
                • ==>考慮有無可能不通過指針函數(shù)取得[被引用對象](referred object).如果有可能,你就可以對取值函數(shù)(getter)使用Substitute Algorithm(139).從而讓客戶在沒有指針的情況下也可以使用該取值函數(shù).
                • ==>對于使用該值域的所有函數(shù),考慮將[被引用對象](referred object)作為引數(shù)(argument)傳進去.
            • 如果客戶使用了取值函數(shù)(getter),先運用Self Encapsulate Field(171)將[待除值域]自我封裝起來,然后使用Subsitute Algorithm(139)對付取值函數(shù),令它不再使用該(待除)值域.然后編譯,測試.
            • 如果客戶并使用取值函數(shù)(getter),那就直接修改[待除值域]的所有被引用點:改以其他途徑獲得該值域所保存的對象.每次修改后,編譯并測試.
            • 如果已經(jīng)沒有任何函數(shù)使用該(待除)值域,移除所有[對該值域的更新邏輯],然后移除該值域.
                • ==>如果有許多地方對此值域賦值,先運用Self Encapsulate Field(171)使這些地點改用同一個設(shè)值函數(shù)(setter).編譯,測試.而后將這個設(shè)值函數(shù)的本體清空.再編譯,再測試.如果這些都可行,就可以將此值域和其設(shè)值函數(shù),連同對設(shè)值函數(shù)的所有調(diào)用,全部移除.
            • 編譯,測試.
          posted on 2005-09-14 15:11 ivaneeo 閱讀(258) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 新乡市| 米脂县| 榆树市| 合川市| 尼木县| 来凤县| 崇信县| 樟树市| 灌阳县| 宣威市| 灯塔市| 灵石县| 吕梁市| 连城县| 长宁区| 阳原县| 克什克腾旗| 封开县| 肥西县| 专栏| 黑水县| 郴州市| 磴口县| 内丘县| 湘乡市| 农安县| 宾阳县| 游戏| 胶州市| 丹棱县| 新乐市| 登封市| 兴海县| 乳山市| 宜宾县| 阿合奇县| 鹤壁市| 九江县| 灵宝市| 合肥市| 砀山县|