ivaneeo's blog

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

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          大多數(shù)編程環(huán)境都有兩種數(shù)據(jù):結(jié)構(gòu)型別(record types)允許你將數(shù)據(jù)組織成有意義的形式;基本型別(primitive types)則是構(gòu)成結(jié)構(gòu)型別的積木塊。結(jié)構(gòu)總是會(huì)帶來(lái)一定的額外開銷。它們有點(diǎn)像數(shù)據(jù)庫(kù)中的表格,或是那些得不償失(只為做一兩件事而創(chuàng)建,卻付出太大 額外開銷)的東西。

          對(duì)象技術(shù)的新手通常不原意在小任務(wù)上運(yùn)用小對(duì)象-像是結(jié)合數(shù)值和幣別的money class、含一個(gè)起始值和一個(gè)結(jié)束值的range class、電話號(hào)碼或郵政編碼(zip)等等的特殊Strings。你可以運(yùn)用Replace Data Value with Object(175)將原本單獨(dú)存在的數(shù)據(jù)值替換為對(duì)象,從而走出傳統(tǒng)的洞窟,進(jìn)入炙手可熱的對(duì)象世界。如果欲替換之?dāng)?shù)據(jù)值是type code(型別碼),而它并不影響行為,你可以運(yùn)用Replace Type Code with Class(218)將它換掉。如果你有相依于此type code的條件式,可運(yùn)用Replace Type Code with Subclass(227)或Replace Type Code with State/Strategy(227)加以處理。

          如果你有一組應(yīng)該總是被放在一起的值域(fields),可運(yùn)用Extract Class(149)。如果你在參數(shù)列中看到基本型數(shù)據(jù),不妨試試Introduce Parameter Object(295)。如果你發(fā)現(xiàn)自己正從array中挑選數(shù)據(jù),可運(yùn)用Replace Array with Object(186)。
          posted on 2005-08-19 11:16 ivaneeo 閱讀(567) 評(píng)論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 乌鲁木齐县| 葫芦岛市| 余江县| 阜阳市| 阿瓦提县| 共和县| 肇州县| 永兴县| 马关县| 皋兰县| 乡宁县| 肇东市| 云霄县| 苏尼特左旗| 察雅县| 雅安市| 蒙阴县| 固镇县| 大丰市| 车致| 山阳县| 伊川县| 定州市| 陇南市| 鱼台县| 大田县| 遂宁市| 壶关县| 涪陵区| 乌拉特后旗| 宜兰市| 邹平县| 富川| 南京市| 宁德市| 太康县| 宜城市| 上高县| 屯昌县| 志丹县| 澄城县|