fuzhengwei / fuzhengwei/CodeGuide
关于重学设计模式中,策略模式价格计算的问题
- Dominant language
- Shell
- Stars
- 11.9k
- Forks
- 4.2k
- PR merge metrics
- No merged PRs in 30d
Description
工程:`itstack-demo-design-20-02`
在每个优惠计算接口都会有一个限制,就是最低支付金额 1 元
比如类 `ZJCouponDiscount ` 直减计算的过程:
```java
public class ZJCouponDiscount implements ICouponDiscount {
/**
* 直减计算
* 1. 使用商品价格减去优惠价格
* 2. 最低支付金额1元
*/
public BigDecimal discountAmount(Double couponInfo, BigDecimal skuPrice) {
BigDecimal discountAmount = skuPrice.subtract(new BigDecimal(couponInfo));
if (discountAmount.compareTo(BigDecimal.ZERO) < 1) return BigDecimal.ONE;
return discountAmount;
}
}
```
返回结果之前加了判断` if (discountAmount.compareTo(BigDecimal.ZERO) < 1)`
这里的意思是如果结果小于等于0的时候,会返回 1 元
但是还有一种情况,就是 大于 0 小于 1 的时候,例如 0.5,会放过去,然后返回这个 0.5 ,违背了 最低支付金额 1 元的设定
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.