1.Self Encapsulate Field

          為這個field建立getting/setting method,并且只通過這些函數來訪問field.
          例:
          privte int low,high;
          boolean includes(int arg){
              return arg>=low&&arg<=high;
          }
          重構為:
          private int low,high;
          boolean includes(int arg){
              return arg>=getLow()&&arg<=getHigh();
          }
          int getLow(){return low;}
          int getHigh(){return high;}

          2.Replace Data Value with Object
          將一個數據項變成一個對象。
          3.Change Value to Reference
          將這個實值對象變成一個引用對象。
          4.Change Reference to Value
          將一個引用對象變成實值對象。
          例:
          Class Currency{
          private String code;
          public String getCode()}
              return code;
          }
          private Currency(String code){
              this.code=code;
          }
          }
          5.Replace Array with Object
          以對象替換數組,對于數組中的每個元素,以一個值域表示之。
          例:
          String[] row=new String[3];
          row[0]="Liverpool";
          row[1]="15";
          重構為:
          Performance row=new Performance();
          row.setName("Liverpool");
          row.setWins("15");
          6.Duplicate Observed Data
          7.Change Unidirectional Association to Bidirectional
          8.Change Bidirectional Association to Unidirectional

          posts - 9, comments - 0, trackbacks - 0, articles - 3

          Copyright © 在從未放棄的路上

          主站蜘蛛池模板: 东兴市| 茌平县| 天气| 微山县| 通海县| 天长市| 房山区| 黄冈市| 巴林右旗| 伊金霍洛旗| 朔州市| 堆龙德庆县| 赫章县| 建水县| 江城| 寻甸| 陆良县| 宁陵县| 曲阜市| 贵溪市| 涟水县| 屯留县| 托克逊县| 泸定县| 许昌县| 杨浦区| 白水县| 淮安市| 高陵县| 锡林郭勒盟| 司法| 固始县| 藁城市| 南城县| 景宁| 芮城县| 林甸县| 东阿县| 云安县| 南木林县| 延川县|