相同事情,选择不同方式实现。解决多重if判断问题
策略类数量增多(每一个策略类复用性很小,如果需要增加算法,就只能新增类)
所有的策略类都需要对外暴露(使用的人必须了解使用策略,这个就需要其它模式来补充,比如工厂模式、代理模式)
后期维护不同策略类是非常多、定义类比较多、代码量增大。
1.联合登录 QQ联合登录/微信联合登录/钉钉联合登录
2.排序算法 冒泡/简单选择/堆排序等
3.支付方式 支付宝/微信支付/银联支付/平安支付等 聚合支付平台
4.快递 申通、圆通、京东、德邦、顺丰等
5.发送通知 短信、微信公众号模板、钉钉通知、邮件
IOC结合到数据库表结构存放我们策略可以动态的形式开启或者关闭策略。
策略模式中最核心 容器(map集合) map集合底层简化了我们多重if判断 在通过多态策略
找到具体实现类方法调用。
在spring项目中我们是没有必要单独定义我们容器 因为spring ioc 自带容器。