ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          先前(上個重構項)我從TelephoneNumber提煉出另一個class,現在我要將它inlining塞回到Person去。一開始這兩個classes是分離的:
          class Person...
              public String getName() {
                 return _name;
              }
              public String getTelephoneNumber() {
                 return _officeTelephone.getTelephoneNumber();
              }
              TelephoneNumber getOfficeTelephone() {
                 return _officeTelephone;
              }

              private String _name;
              private TelephoneNumber _officeTelephone = new TelephoneNumber();


          class TelephoneNumber...
              public String getTelephoneNumber() {
                 return ("(" + _areaCode + ")" + _number);
              String getAreaCode() {
                 return _areaCode;
              }
              void setAreaCode(String arg) {
                 _areaCode = arg;
              }
              String getNumber() {
                 return _number;
              }
              void setNumber(String arg) {
                 _number = arg;
              }
              private String _number;
              private String _areaCode;

          首先我在Person中聲明TelephoneNumber的所有[可見](public)函數:
          class Person...
              String getAreaCode() {
                 return _officeTelephone.getAreaCode();
              }
              void setAreaCode(String arg) {
                 _officeTelephone.setAreaCode(arg);
              }
              String getNumber() {
                 return
          _officeTelephone.getNumber();
              }
              void setNumber(String arg) {
                
          _officeTelephone.setNumber(arg);
              }


          現在,我要找出TelephoneNumber的所有用戶,讓它們轉而使用Person接口。于是下列代碼:
              Person martin = new Person();
              martin.getOfficeTelephone().setAreaCode("781");
          就變成了:
              Person martin = new Person();
              martin.setAreaCode("781");
          現在,我可以持續使用Move Method(142)和Move Field(146),直到TelephoneNumber不復存在。
          posted on 2005-08-31 10:57 ivaneeo 閱讀(203) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 屏南县| 屏山县| 清水县| 百色市| 平乐县| 霍邱县| 富平县| 四子王旗| 礼泉县| 松桃| 东海县| 色达县| 定结县| 西和县| 花莲市| 平泉县| 大连市| 哈巴河县| 台中县| 宜君县| 恩施市| 邵武市| 北京市| 久治县| 东阿县| 富阳市| 佛坪县| 芦溪县| 韩城市| 云霄县| 嘉义市| 星子县| 正安县| 琼中| 全椒县| 石首市| 靖西县| 遂宁市| 玛曲县| 岫岩| 蒲城县|