ivaneeo's blog

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

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          作法(Mechanics)
            • 決定如何分解class所負(fù)責(zé)任。
            • 建立一個(gè)新class,用以表現(xiàn)從舊class中分離出來(lái)的責(zé)任。
                • ==》如果舊class剩下的責(zé)任與舊class名稱(chēng)不符,為舊class易名。
            • 建立[從舊class訪問(wèn)新class]的連接關(guān)系(link)。
                • ==》也許你有可能需要一個(gè)雙向連接。但是在真正需要它之前,不要建立[從新class同往舊class]的連接。
            • 對(duì)于你想搬移的每一個(gè)值域,運(yùn)用Move Field(146)搬移之。
            • 每次搬移后,編譯、測(cè)試。
            • 使用Move Method(142)將必要函數(shù)搬移到新class。先搬移較低層函數(shù)(也就是[就其他函數(shù)調(diào)用]多于[調(diào)用其他函數(shù)]者),再搬移較高層函數(shù)。
            • 每次搬移之后,編譯、測(cè)試。
            • 檢查,精簡(jiǎn)每個(gè)class的接口。
                • ==》如果你建立起雙向連接,檢查是否可以將它改為單向連接。
            • 決定是否讓新class暴光。如果你的的確需要暴光它,決定讓它成為reference object(引用型對(duì)象)或immutable value object(不可變之[實(shí)值型對(duì)象])。
          posted on 2005-08-30 15:46 ivaneeo 閱讀(168) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): refactoring-從地獄中重生
          主站蜘蛛池模板: 河津市| 屏东市| 突泉县| 手游| 临汾市| 衡山县| 葵青区| 邹城市| 西畴县| 兰坪| 博湖县| 莆田市| 固镇县| 湖北省| 弋阳县| 余江县| 台安县| 德惠市| 台湾省| 彰化市| 江孜县| 班戈县| 斗六市| 德昌县| 阜宁县| 玉树县| 宁陵县| 霍城县| 桂林市| 贵南县| 龙海市| 云龙县| 邯郸县| 邓州市| 岑溪市| 崇信县| 阿瓦提县| 会昌县| 襄樊市| 沙洋县| 丹巴县|