杀死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