Welcome 微信登录

首页 / 软件开发 / JAVA / 使用Java设计一个图书打折系统

使用Java设计一个图书打折系统2011-03-23zhangjunhd书店推出打折消息:

[1]对于“新书”,没有折扣;

[2]对于“计算机”类图书,固定折扣为10元;

[3]对于“经管”类图书,折扣的书价的10%;

[4]购买5本以上的图书,固定折扣为20元;

[5]在所有的折扣计算后,总的折扣价不得超过50元。

1.使用Strategy模式

对于打折消息[1],[2],[3]针对三种类型的图书,可以使用Strategy模式。

NoDiscountStrategy代表购买“新书”的打折策略-没有折扣;

FlatRateStrategy代表购买“计算机”类图书的打折策略-固定折扣价;

PercentageStrategy代表购买“经管”类图书的打折策略-百分比折扣价。

<<abstract>>DiscountStrategy.java

package com.zj.books.strategy;
public abstract class DiscountStrategy {
protected double _price = 0.0;
public DiscountStrategy(double price) {
_price = price;
}
abstract public double calculateDiscount();
……
}

_price代表图书的价格;抽象方法calculateDiscount()表示具体的打折计算逻辑,延迟到子类中实现。下面的三个子类的部分逻辑。

NoDiscountStrategy.java

package com.zj.books.strategy;
public class NoDiscountStrategy extends DiscountStrategy {
public NoDiscountStrategy(double price) {
super(price);
}
public double calculateDiscount() {
return 0.0;
}
}