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

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

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

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

    1.方法抽取:Extract Method
    將calcCost中參數校驗部分抽取成方法verify.
    選定代碼--->右鍵Refactor-->Extract Method
    2.重命名:Rename
    (1)重命名類名Test1為CostCalculator
    (2)重命名User為UserInfo
    選定類名-->右鍵Refactor-->Rename
    3.內聯:Inlining
    內聯方法add
    內聯原因:調用方法越多,運行速度越慢
    選定方法名("add")-->右鍵Refactor-->Inline
    4.常量抽取:Extract 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)

    隨筆分類

    隨筆檔案

    戰友^-^

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费无码又黄又爽又刺激| 成全在线观看免费观看大全 | 亚洲免费在线视频观看| 亚洲伊人久久精品影院| 中文在线日本免费永久18近| 亚洲一区二区三区在线视频| 新最免费影视大全在线播放| 亚洲免费在线观看| AAAAA级少妇高潮大片免费看| 伊人婷婷综合缴情亚洲五月| a级日本高清免费看| 亚洲AV无码久久精品色欲| 小草在线看片免费人成视久网| 亚洲成AV人在线观看天堂无码| 国产成人免费视频| 亚洲视频欧洲视频| 中文字幕无码成人免费视频| 亚洲七久久之综合七久久| 国产在线观看免费视频播放器| 无套内射无矿码免费看黄| 亚洲国产免费综合| av永久免费网站在线观看| 亚洲成a人片在线网站| 日本无卡码免费一区二区三区| 污网站在线观看免费| 久久夜色精品国产亚洲| www视频在线观看免费| 久久久久亚洲精品无码网址色欲| 亚洲美日韩Av中文字幕无码久久久妻妇 | 亚洲AV日韩AV天堂久久| free哆啪啪免费永久| 理论亚洲区美一区二区三区| 亚洲午夜福利精品无码| 最近高清中文字幕免费| 亚洲AⅤ男人的天堂在线观看| 亚洲一区二区三区在线观看精品中文| 国产精品免费福利久久| 亚洲成aⅴ人片久青草影院按摩| 亚洲国产成人精品无码久久久久久综合 | 免费v片在线观看无遮挡| 一级成人a毛片免费播放|