# kill_if_else **Repository Path**: rainbowboy/kill_if_else ## Basic Information - **Project Name**: kill_if_else - **Description**: 使用策略模式替换If-else - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-10-03 - **Last Updated**: 2022-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 杀死if-else的策略模式+工厂模式 ------- 核心方法: - 定义策略接口,和实现类用于实现对应策略。 ```Java 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计划"); } } ``` - 定义策略工厂,用于装配策略,和策略选型。 ```java public class Factory { private static Map 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); } } ``` ## 总结: ```java 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