采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,你好,我想问一下,在课程里面讲的活动促销策略代码里面,每个活动的策略都需new出来,不同的策略需要new对应的策略类,那我在new之前岂不是还是需要用if判断当前是618还是1111还是其他等活动吗?如图: 麻烦老师给讲解一下,谢谢了
同学你好,咱们可以假设promotionActivity618和promotionActivity1111对象都创建好了,它们都是PromotionActivity接口下的对象,我们在业务当中肯定是要根据某个标识来确定使用哪个PromotionActivity对象的,那么我们的接口中应该要有某个方法:
boolean match(String code){
}
传递进来的code就决定了我们是否可以使用当前的对象来执行业务逻辑,只有符合要求的PromotionActivity对象才能真正地执行对应的目标策略;
在这样的代码中,我们不需要去一个一个编写if...else...逻辑,直接通过策略模式把所有的情况都考虑进去了,即使将来再有123这种情况,我们也只需要扩展对应的PromotionActivity实现即可;
登录后可查看更多问答,登录/注册
系统学习设计原则,设计模式,锤炼编码内功,赢取高薪Offer
3.2k 2
1.6k 11
1.7k 8
1.6k 6
1.5k 6
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号