关于java:策略IOC-消灭ifelse拿来吧你

7次阅读

共计 737 个字符,预计需要花费 2 分钟才能阅读完成。

前言

策略模式 简略来说就是定义了一个算法的大家族,别离封装起来,让他们之间能够相互替换,算法的变动不会影响到应用算法的用户

简略来说,你的女朋友 618 在淘宝买货色,有许多折扣流动,比方满减、折扣、0 元购

一般的实现的话,就是这样

哦,不对你没有女朋友

然而!这并不影响咱们了解策略模式,咱们持续

策略模式实质就是用来打消 上图的 ifelse 带给咱们的恐怖

接下来让咱们实际一下

实现一下

咱们先定义一个促销接口 PromotionStrategy

接下来三种的促销策略全副去实现这个促销接口,不一一贴图了

咱们拿 0 元购的 FeeStrategy 举例

咱们还能够写一个 DefaultStrategy 在内部瞎传促销类型的时候,进行一个默认的促销流动

ok,接下来,容器出场前,先看看咱们的促销类型的枚举
EnumPromotionType

咱们心愿通过传递进来的促销类型,找到对应的交给容器治理的 bean,举个🌰,我以后传递进来 2- 折扣类型,心愿我能够找到 DisCountStrategy 这个 bean

来,看看代码

ok,这样就取得了咱们对应的促销类型的实现类了

革新一下文章结尾的一堆 ifelse

当初看起来,是不是清新了许多

当前须要在减少策略流动的时候,比方 买车送女朋友

只须要补充枚举类,和在写一个实现类即可。不须要再 ifelse

总结

  • 策略模式是一种较为好了解的设计模式,它能够与多种设计模式联合,当然第一出发点是咱们的业务场景
  • 通过策略设计模式的使⽤能够把咱们⽅法中的 if 语句优化掉,满足咱们的开闭准则,大大增加咱们的扩展性
  • 那么,留给大家一个问题,咱们框架中哪些办法用到了策略模式?

文章完结 🤣

如果本文对你有所帮忙的话,那就点个赞吧

更多分享尽在 Skow 的微信公众号

公众号回复“材料”能够获取大厂面试题 / 技术文档 / 电子书等等

正文完
 0