ivaneeo's blog

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

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
很明显看出来,htmlStatement()和statement()是不同的。现在,我应该脱下[重构]的帽子,戴上[添加功能]的帽子,戴上[添加功能]的帽子。我可以像下面这样编写htmlStatement(),并添加相应测试:

public String htmlStatement() {
    Enumeration rentals = _rentals.elements();
    String result = "<H1>Rental Record for <EM> " + getName() + "</EM></H1><P>\n";
    while(rentals.hasMoreElements()) {
       Rental each = (Rental)rentals.nextElement();    //取得一笔租借记录

          result += each.getMovie().getTitle() + ":" +
             String.valueOf(each.getCharge()) + "<BR>\n";
    }
//   add footer lines(结尾打印)
    result += "<P>You owe <EM>" + String.valueOf(getTotalCharge()) + "</EM><P> \n";
    result += "On this rental you earned <EM>" + String.valueOf(getTotalfrequentRenterPoints()) +
       "</EM>frequent renter points<P>";
    return result;
}

通过计算逻辑的提炼,我可以完成一个htmlStatement(),并复用(reuse)原本statement()内的所有计算。我不必剪剪贴贴,所以如果计算规则发生改变,我只需在程序中做一处修改。
posted on 2005-08-15 14:29 ivaneeo 阅读(161) 评论(0)  编辑  收藏 所属分类: refactoring-从地狱中重生

只有注册用户登录后才能发表评论。


网站导航: