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");
          現在,我可以持續(xù)使用Move Method(142)和Move Field(146),直到TelephoneNumber不復存在。
          posted on 2005-08-31 10:57 ivaneeo 閱讀(203) 評論(0)  編輯  收藏 所屬分類: refactoring-從地獄中重生
          主站蜘蛛池模板: 开鲁县| 固始县| 彩票| 清流县| 南投县| 公主岭市| 准格尔旗| 锡林浩特市| 松溪县| 德阳市| 扎赉特旗| 确山县| 大足县| 安阳县| 蒲江县| 子洲县| 楚雄市| 景洪市| 南阳市| 赤壁市| 莆田市| 吴桥县| 乌恰县| 兴山县| 阿荣旗| 工布江达县| 托里县| 揭东县| 枞阳县| 拜城县| 邵东县| 息烽县| 南通市| 毕节市| 察哈| 历史| 闵行区| 武冈市| 蓬莱市| 汝城县| 上杭县|