我们编写程序时,经常会用到if和else。过多的使用不仅会影响阅读。而且也不方便于后续业务的穿插。大多数优化方案都是采取策略模式,有些直接分派到类的一个方法,有些直接独立出一个类来处理逻辑,以下是本人汇总的一些方案
lamdba表达式
利用Function函数来存储所有调用实例,Function
|
|
以下例子使用consumer函数的例子,并且委托给各个实现类
|
|
Spring结合策略模式
|
|
贴上流程图
策略模式+工厂模式
上个例子中,策略接口里需要维护策略和实现类的对应关系,其实spring注解@Autowired也有相同功能。 @Autowired 标注作用于Map类型时,如果Map的key为String类型,则 Spring会将容器中所有类型符合Map的value对应的类型的Bean增加进来,用Bean的id或name作为Map的key
|
|
总结:核心思想为采用策略模式,将实现委托给各个子类,实现方式可以为上图、工厂模式等。