Java打折问题_月光软件站 - 编程文档 - Java - 使用面向对象技术解决商品打折问题...

我们现在看在checkout方法中究竟要使用要使用CodePromotion这个类提供的那些信息,首先可以肯定,getPromotionAmount这个方法是必需的,而且我们希望能够得知某一定但为什么要打折,所以getDescription这个方法也是一定要有的,而user()是对promotion code使用过后进行的处理。所以一个更好的方法是定义一个接口,checkout方法中的参数类型使这个接口,而不是ColdPromotion这个类,这样一来,无论是那种打折,我们都可以通过这个接口实现。我们需要做的就是让我们的新的打折类实现这个接口。下面就是这个接口的定义:

interface Promotable{

public float getPromotionAmount(float totalCharge)

public boolean isValidate()

public void use()

public String getDescription()

}

本来以为这样一来可以高枕无忧了,但是转念一想有多了一份担忧,如果某一天销售人员提出丧心病狂的要求,几种打折一起使用该如何是好?其实这个问题也是可以解决的,那就是我们在checkout中传递的甚至不是Promotable这个接口,而是一个vector或者Promotable的数组,在checkout之前,我们把所有的打折信息放入到这个Vector中,在checkout的过程中,遍历这个Vector(或者数组)。甚至我们可以写一个专门管理promotion的管理类,让他来完成各种打折信息的创建,计算出总的折扣,记录各种打折的原因,进行打折后的处理工作。具体如何实现就要根据个人的好恶了。

版权所有:idilent 网站转载请注明作者 其他转载方式请与作者联系(idilent@yahoo.com.cn)。

down_info.asp?id=24692

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值