上一篇文章介绍了策略模式+工厂模式的案例,但是上一篇是针对策略类比较少的情况下我们在策略工厂里面通过注入具体的策略实现类来完成,那如果策略实现类比较多呢?如果有几十个策略实现类难道要一个一个注入到工厂类里面吗?下面就讲解策略实现类比较多的时候如何处理。
案例:我们系统里面有很多销售和客户,我针对不同的场景需要圈出来该场景下的销售和客户进行其他操作(比如消息通知等),不同场景圈人群是不是就可以使用不同的策略来实现。
场景1:圈客户购物车有加购商品的客户
场景2:圈2024.08.01号有购买了商品的客户
场景3:圈出来所有销售给他们发短信和邮件提醒他们我们的大促活动
这种场景非常多,有可能多达几十上百种场景,那如果在工厂类一个个注入岂不是很麻烦?
下面直接代码说话
首先是策略接口:
然后是接口实现:圈购物车有加购商品的客户策略实现
然后是:圈2024.08.01号有购买了商品的客户策略
最后是:圈出来所有销售给他们发短信和邮件提醒他们大促活动策略
用到的枚举类:
然后就是获取策略的工厂类:兄弟们看好了主要区别就是工厂类的写法
然后就是调用的时候:
到此策略模式+工厂模式之多策略实现类如何处理就结束了,欢迎点评和指出不足之处。