<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Eclipse第四講:重構----實戰重構

    1.方法抽?。篍xtract Method
    將calcCost中參數校驗部分抽取成方法verify.
    選定代碼--->右鍵Refactor-->Extract Method
    2.重命名:Rename
    (1)重命名類名Test1為CostCalculator
    (2)重命名User為UserInfo
    選定類名-->右鍵Refactor-->Rename
    3.內聯:Inlining
    內聯方法add
    內聯原因:調用方法越多,運行速度越慢
    選定方法名("add")-->右鍵Refactor-->Inline
    4.常量抽?。篍xtract Constant
    原因:避免手誤
    將"normal","vip"抽取成常量
    選定字符串-->右鍵Refactor-->Extract Constant
    5.抽取局部變量:Extract Local Voriable
    將user,userType抽取成變量
    原因:減少代碼長度,增加代碼可讀性
    選定要抽取的變量(user.userName)-->右鍵Refactor-->Extract Local Variable
    6.包裝字段:Encapsulate Field
    重構user類,用set,get包裝
    主菜單-->Refactor-->Encapsulate Field
    7.抽取接口:Extract Interface
    選定方法名(calcCost)-->右鍵Refactor-->Extract Interface-->Name:ICcstCalculator
    重構后的代碼為:
    (一)UserInfo.java
    package com.comnew.demo;

    public class UserInfo {
       private String userName;
       private String userType;
       private int amount;
    public void setUserName(String userName) {
     this.userName = userName;
    }
    public String getUserName() {
     return userName;
    }
    public void setUserType(String userType) {
     this.userType = userType;
    }
    public String getUserType() {
     return userType;
    }
    public void setAmount(int amount) {
     this.amount = amount;
    }
    public int getAmount() {
     return amount;
    }
    }
    (二)CostCalculator.java
    package com.comnew.demo;

    public class CostCalculator implements ICostCalculator {
        private static final int VIPPRICE = 0;
     private static final int NORMALPRICE = 10;
     private static final String VIP = "vip";
     private static final String NORMAL = "normal";

     /* (non-Javadoc)
      * @see com.comnew.demo.ICostCalculator#calcCost(com.comnew.demo.UserInfo)
      */
     public int calcCost(UserInfo user)
          {
           verify(user);
          
          
           int ret=0;
           String userType = user.getUserType();
      if(userType.equals(NORMAL))
           {
            ret=user.getAmount()+NORMALPRICE;
           }
           else if(userType.equals(VIP))
           {
            ret=user.getAmount()+VIPPRICE;
           }
           else
           {
            throw new IllegalArgumentException("useType的類型錯誤!必須未如下幾種:"+NORMAL+","+VIP);
           }
           return ret;
          }

     private void verify(UserInfo user) {
      String useType = user.getUserType();
      if(useType==null)
           {
            throw new IllegalArgumentException("userType不能為空!");
           }
           if(user.getAmount()<=0)
           {
            throw new IllegalArgumentException("amount必須大于0!");
           }
     }

     public static void main(String[] args)
     {
      String userName="tom";
      String userType=NORMAL;
      int amount=20;
      UserInfo user=new UserInfo();
      user.setUserName(userName);
      user.setUserType(userType);
      user.setAmount(amount);
      System.out.println(new CostCalculator().calcCost(user));
     }
    }
    (三)ICostCalculator.java
    package com.comnew.demo;

    public interface ICostCalculator {

     public abstract int calcCost(UserInfo user);

    }

    posted on 2007-04-25 08:37 糖果 閱讀(464) 評論(0)  編輯  收藏 所屬分類: 畢業設計

    <2007年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    導航

    統計

    公告

    畢業設計~~加油~~

    常用鏈接

    留言簿(11)

    隨筆分類

    隨筆檔案

    戰友^-^

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 中文字幕永久免费视频| 中文字幕乱码亚洲无线三区| 成人免费观看男女羞羞视频| 又大又硬又爽免费视频| 男男gvh肉在线观看免费| 午夜亚洲福利在线老司机| 日本亚洲高清乱码中文在线观看| 免费高清资源黄网站在线观看| 亚洲人成网亚洲欧洲无码| 一个人看的www在线观看免费| 国产色在线|亚洲| 日韩a级毛片免费视频| 亚洲爆乳无码专区www| 日美韩电影免费看| 羞羞视频网站免费入口| 亚洲午夜无码片在线观看影院猛| 国产特黄一级一片免费| 久久久久亚洲AV成人无码| 99re这里有免费视频精品| 亚洲国产成人精品激情| 国产黄色片在线免费观看| 四虎一区二区成人免费影院网址| 中文字幕久久亚洲一区| 99热这里有免费国产精品| 亚洲人色大成年网站在线观看| 在线观看免费为成年视频| 一级成人a免费视频| 亚洲人成网站影音先锋播放| 亚洲激情黄色小说| 国产精品成人免费一区二区| 午夜亚洲国产精品福利| 亚洲欧洲日产国产综合网| 中国在线观看免费高清完整版| 在线观看亚洲专区| 亚洲国产精品无码久久久不卡| 永久在线免费观看| 在线亚洲精品视频| 婷婷精品国产亚洲AV麻豆不片| 成人人免费夜夜视频观看| 久久国产精品免费一区| 亚洲中文字幕日本无线码|