1.准备工作,创建一个SpringBoot项目
2.用于判定使用哪个策略的类
public class CashContext {
private CashSupercs acceptCash;
/**
* 使用构造方法来进行选择具体的收费策略
*
* @param cashSuper
*/
public CashContext(CashSuper cashSuper) {
this.cs = cashSuper;
}
public Double getResult(Double money){
return cs.acceptCash(money);
}
}
3.支付方法的抽象类
public abstract class CashSuper {
/**
* 接收现金支付的方法
* @param money
* @return
*/
public abstract Double acceptCash(Double money);
}
4.正常收费
public class CashNormalextends extends CashSuper {
/**
* 正常收费,即是不参与任何打折活动,故此直接返回当前收费现金
*
* @param money
* @return
*/
@Override
public Double acceptCash(Double money) {
return money;
}
}