文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络程序开发Java追逐代码质量: 决心采用 FIT
精品推荐
特别推荐
·实例讲解:Java中的SOAP技术
·Java语言出现的背景 影响及前景
·Java精华积累:初学者都应该搞懂的问题
·Java多媒体框架设计自动播放机实例详解
·如何有效防止Java程序源码被人偷窥?
·Cell插件在J2EE系统中的应用
·初学者想学Hibernate,初级基础教程
·Java语言实现支持视频点播的WEB服务器
·关于Java编程的中文问题的几条分析原则
·确保J2ME无线移动商业应用程序的安全性
热点TOP10
·JasperReport经验谈
·Java Reflection (JAVA反射)
·让数据更安全 保护SQL Server的十个步骤
·“老虎”来了 J2SE1.5新功能一览
·Visual Basic串口通讯调试方法
·一个经典的JAVA APPLET程序(二)
·Java学习从入门到精通(附FAQ)
·用Eclipse Visual Editor 开发SWT GUI
·一个初学者初识 Java 内部类
·中国农历二百年算法及年历程序分析一

追逐代码质量: 决心采用 FIT

日期:2008年6月11日 作者: 查看:[大字体 中字体 小字体]



  该构建了!

  要为酿酒厂构建的订单处理系统有三个主要对象:一个 PricingEngine 处理包含折扣的业务规则,一个 WholeSaleOrder 代表订单,一个 Money 类型代表钱。

  Money 类

  第一个要编写的类是 Money 类,它有进行加、乘和减的方法。可以用 JUnit 测试新创建的类,如清单 14 所示:

  
  清单 4. JUnit 的 MoneyTest 类


package org.acme.store;

import junit.framework.TestCase;

public class MoneyTest extends TestCase {

  public void testToString() throws Exception{
    Money money = new Money(10.00);
    Money total = money.mpy(10);
    assertEquals("$100.00", total.toString());
  }

  public void testEquals() throws Exception{
    Money money = Money.parse("$10.00");
    Money control = new Money(10.00);
    assertEquals(control, money); 
  }

  public void testMultiply() throws Exception{
    Money money = new Money(10.00);
    Money total = money.mpy(10);
  
    Money discountAmount = total.mpy(0.05);    
    assertEquals("$5.00", discountAmount.toString());
  }

  public void testSubtract() throws Exception{
    Money money = new Money(10.00);
    Money total = money.mpy(10);

    Money discountAmount = total.mpy(0.05);
    Money discountedPrice = total.sub(discountAmount);
    assertEquals("$95.00", discountedPrice.toString());
  }
}

  WholeSaleOrder 类

  然后,定义 WholeSaleOrder 类型。这个新对象是应用程序的核心:如果 WholeSaleOrder 类型配置了桶数、每桶价格和产品类型(季节性或全年性),就可以把它交给 PricingEngine,由后者确定对应的折扣并相应地在 WholeSaleOrder 实例中配置它。

  WholesaleOrder 类的定义如清单 5 所示:


  清单 5. WholesaleOrder 类


package org.acme.store.discount.engine;

import org.acme.store.Money;

public class WholesaleOrder {

  private int numberOfCases;
  private ProductType productType;	
  private Money pricePerCase;	
  private double discount;

  public double getDiscount() {
    return discount;
  }

  public void setDiscount(double discount) {
    this.discount = discount;
  }

  public Money getCalculatedPrice() {
    Money totalPrice = this.pricePerCase.mpy(this.numberOfCases);
    Money tmpPrice = totalPrice.mpy(this.discount);
     return totalPrice.sub(tmpPrice);
  }

  public Money getDiscountedDifference() {        
    Money totalPrice = this.pricePerCase.mpy(this.numberOfCases);
    return totalPrice.sub(this.getCalculatedPrice());
  }

  public int getNumberOfCases() {
    return numberOfCases;
  }

  public void setNumberOfCases(int numberOfCases) {
    this.numberOfCases = numberOfCases;
  }

  public void setProductType(ProductType productType) {
    this.productType = productType;
  }

  public String getProductType() {
    return productType.getName();
  }

  public void setPricePerCase(Money pricePerCase) {
    this.pricePerCase = pricePerCase;
  }

  public Money getPricePerCase() {
    return pricePerCase;
  }	
}


上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页 




上一篇:在组合模式中实现访问者(Visitor)模式

下一篇:采用敏捷方法进行用户界面开发
相关文章:
·qq空间皮肤背景代码:QQ空间不用Q币更换主页皮肤方法
·QQ空间免费换皮肤代码
·如何在QQ空间加入播放器代码
·免费领养QQ空间五级花最新技巧及代码放送
·提高生活质量的50个方法
·Windows XP 客户端的软件限制策略一
·最新MTV音乐空间代码
·QQ空间音乐代码
·是什么在影响CD与DVD光盘的质量?
·QQ空间植物代码
相关软件:

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot