杀死if-else的策略模式+工厂模式

    科技2022-07-10  142

    杀死if-else的策略模式+工厂模式


    核心方法:

    定义策略接口,和实现类用于实现对应策略。 public interface DealStrategy { /** * 交易方法 * @param option */ void dealMethod(String option); } public class DealA implements DealStrategy { @Override public void dealMethod(String option) { System.out.println("A计划"); } } public class DealB implements DealStrategy { @Override public void dealMethod(String option) { System.out.println("B计划"); } } 定义策略工厂,用于装配策略,和策略选型。 public class Factory { private static Map<String, DealStrategy> map = new HashMap<>(); //初始化交易方法 static { map.put("B", new DealB()); map.put("A", new DealA()); } /** * 策略选型,如果传入A选择A策略 * * @param type */ public void shareOptions(String type) { //实例化策略 DealStrategy dealStrategy = map.get(type); //调用该策略 dealStrategy.dealMethod(type); } }

    总结:

    public static void main(String[] args) { Factory factory = new Factory(); factory.shareOptions("A"); factory.shareOptions("B"); } 结果为: A计划 B计划

    首先不同类对接口的实现替换了if-else大括号的内容,使用Factory方法代替if-else的选择功能,该实现让我们在使用时只需要几行代码就可以替换一堆if-else

    Processed: 0.010, SQL: 8