使用面向对象技术解决商品打折问题

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

我们现在看在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)。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航