//策略模式仅仅封装算法,提供新的算法插入到已有项目中
import java.math.BigDecimal;
/**
* @date: 2022/6/5 22:30
* @desc: 策略接口
*/public interface IStrategyPrice {
BigDecimal getRealPrice(BigDecimal price);
}
import java.math.BigDecimal;
/**
* @date: 2022/6/5 22:32
* @desc: 新活动价
*/public class NewPrice implements IStrategyPrice {
public BigDecimal getRealPrice(BigDecimal price) {
BigDecimal scale = new BigDecimal(0.8);
return price.multiply(scale);
}
}
import java.math.BigDecimal;
/**
* @date: 2022/6/5 22:32
* @desc: 上期活动价
*/public class OldPrice implements IStrategyPrice {
public BigDecimal getRealPrice(BigDecimal price) {
BigDecimal scale = new BigDecimal(0.9);
return price.multiply(scale);
}
}
import java.math.BigDecimal;
/**
* @date: 2022/6/5 22:35
* @desc: 获取真实价
*/public class RealPrice {
private IStrategyPrice strategyPrice;
public RealPrice(IStrategyPrice strategyPrice_) {
strategyPrice = strategyPrice_;
}
public BigDecimal getRealPrice(BigDecimal price) {
return strategyPrice.getRealPrice(price);
}
}
// 测试代码
BigDecimal price = new BigDecimal(8);
IStrategyPrice newPrice = new NewPrice();
RealPrice realPrice = new RealPrice(newPrice);
System.out.println("折算后的价格:"+ realPrice.getRealPrice(price));
文章来源:智云一二三科技
文章标题:java设计模式策略模式
文章地址:https://www.zhihuclub.com/193700.shtml