设计模式 - 行为型 - 策略模式学习

文章介绍了如何运用策略模式来替换复杂的ifelse结构,通过定义一系列算法并封装,使得不同的计算逻辑(如满减、折扣、秒杀)可以相互替换。首先,定义基础数据模型和计算模型;其次,创建计算金额的抽象接口及其实现子类;然后,建立策略模式控制类来根据需求选择计算方式;最后,通过Context类调用相应策略进行计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现象:
设计模式 - 行为型 - 策略模式学习

介绍:
定义一系列算法,把他们封装起来,并且使它们可以相互替换。
策略模式是由子类替代⼤量 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.执行折扣计算调用
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值