现象:
设计模式 - 行为型 - 策略模式学习
介绍:
定义一系列算法,把他们封装起来,并且使它们可以相互替换。
策略模式是由子类替代⼤量 ifelse 的方案
如购买商品进行活动 根据类型计算抵扣金额有大量if else计算
if(type=1){
return 满减计算金额
} else if(type=2){
return 折扣计算金额
}else if(type=3){
return 直接秒杀金额
}
...
方法:
一:定义执行基础数据模型与实际计算模型
1.定义基础执行数据模型
2.定义执行实际模型 继承基础模型
二:定义计算金额抽象接口 与 个计算实际计算子类
1.定义抽象计算金额方法
2.定义满减实际算法操作
3.定义N元秒杀购买实际操作
4.定义折扣实际算法
三:定义策略模式控制类
通过注入的AbstractDiscountHandle属性来控制计算方式
四:通过Context控制类调用
1.满减金额调用
2.执行N元购买调用
3.执行折扣计算调用