打字猴:1.700482144e+09
1700482144 return amount;
1700482145
1700482146 }
1700482147
1700482148 public void setAmount(int amount){
1700482149
1700482150 this.amount=amount;
1700482151
1700482152 }
1700482153
1700482154 }
1700482155
1700482156 两个最简单也是在应用中最常使用的对象定义完毕,下面就需要来定义策略了,非常明显的策略模式,类图如图35-2所示。
1700482157
1700482158
1700482159
1700482160
1700482161 图35-2 扣款策略类图
1700482162
1700482163 典型的策略模式,扣款有两种策略:固定扣款和自由扣款。下面我们来看代码,先看抽象策略,也就是扣款接口,如代码清单35-3所示。
1700482164
1700482165 代码清单35-3 扣款策略接口
1700482166
1700482167 public interface IDeduction{
1700482168
1700482169 //扣款,提供交易和卡信息,进行扣款,并返回扣款是否成功
1700482170
1700482171 public boolean exec(Card card,Trade trade);
1700482172
1700482173 }
1700482174
1700482175 固定扣款的规则是固定金额和自由金额各扣除交易金额的一半,如代码清单35-4所示。
1700482176
1700482177 代码清单35-4 扣款策略一
1700482178
1700482179 public class SteadyDeduction implements IDeduction{
1700482180
1700482181 //固定性交易扣款
1700482182
1700482183 public boolean exec(Card card,Trade trade){
1700482184
1700482185 //固定金额和自由金额各扣除50%
1700482186
1700482187 int halfMoney=(int)Math.rint(trade.getAmount()/2.0);
1700482188
1700482189 card.setFreeMoney(card.getFreeMoney()-halfMoney);
1700482190
1700482191 card.setSteadyMoney(card.getSteadyMoney()-halfMoney);
1700482192
1700482193 return true;
[ 上一页 ]  [ :1.700482144e+09 ]  [ 下一页 ]