ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          作法(Mechanics)
            • 決定如何分解class所負責(zé)任。
            • 建立一個新class,用以表現(xiàn)從舊class中分離出來的責(zé)任。
                • ==》如果舊class剩下的責(zé)任與舊class名稱不符,為舊class易名。
            • 建立[從舊class訪問新class]的連接關(guān)系(link)。
                • ==》也許你有可能需要一個雙向連接。但是在真正需要它之前,不要建立[從新class同往舊class]的連接。
            • 對于你想搬移的每一個值域,運用Move Field(146)搬移之。
            • 每次搬移后,編譯、測試。
            • 使用Move Method(142)將必要函數(shù)搬移到新class。先搬移較低層函數(shù)(也就是[就其他函數(shù)調(diào)用]多于[調(diào)用其他函數(shù)]者),再搬移較高層函數(shù)。
            • 每次搬移之后,編譯、測試。
            • 檢查,精簡每個class的接口。
                • ==》如果你建立起雙向連接,檢查是否可以將它改為單向連接。
            • 決定是否讓新class暴光。如果你的的確需要暴光它,決定讓它成為reference object(引用型對象)或immutable value object(不可變之[實值型對象])。
          posted on 2005-08-30 15:46 ivaneeo 閱讀(168) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 寻乌县| 凤凰县| 永昌县| 正阳县| 连城县| 贵定县| 锡林郭勒盟| 阜平县| 博野县| 福安市| 无棣县| 洛扎县| 会宁县| 吴旗县| 息烽县| 富民县| 东乌珠穆沁旗| 宁都县| 三亚市| 都江堰市| 温宿县| 崇信县| 云梦县| 长宁区| 青海省| 潮安县| 长治市| 富民县| 乌兰察布市| 洱源县| 海南省| 如东县| 达日县| 通州市| 安宁市| 右玉县| 安陆市| 会宁县| 文水县| 余江县| 始兴县|