请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于使用策略模式消除if....else if....的问题

老师,你好,我想问一下,在课程里面讲的活动促销策略代码里面,每个活动的策略都需new出来,不同的策略需要new对应的策略类,那我在new之前岂不是还是需要用if判断当前是618还是1111还是其他等活动吗?如图:
图片描述
麻烦老师给讲解一下,谢谢了

正在回答 回答被采纳积分+3

1回答

geelylucky 2024-02-20 22:53:05

同学你好,咱们可以假设promotionActivity618和promotionActivity1111对象都创建好了,它们都是PromotionActivity接口下的对象,我们在业务当中肯定是要根据某个标识来确定使用哪个PromotionActivity对象的,那么我们的接口中应该要有某个方法:

boolean match(String code){

}

传递进来的code就决定了我们是否可以使用当前的对象来执行业务逻辑,只有符合要求的PromotionActivity对象才能真正地执行对应的目标策略;

在这样的代码中,我们不需要去一个一个编写if...else...逻辑,直接通过策略模式把所有的情况都考虑进去了,即使将来再有123这种情况,我们也只需要扩展对应的PromotionActivity实现即可;

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号