之前我们写逻辑判断的时候,在不同的业务类型时反复if-else,那有什么方式能根据业务类型消除if-else吗 ?
1、定义所有业务需要公用的方法接口;
里面包含公用的方法getTradeBo以及一个获取支持该种交易类型的方法getSupportedTrdType;

2、根据业务类型去实现上述接口;
设置该实现是属于哪一种交易类型或者多种交易类型;
实现自己业务种类的方法;
也可以设置默认执行的方法;


3、定义一个被调用入口的接口,以供别人调用

4、对出口接口进行实现
实现类除了实现上述接口,还需实现InitializingBean,并重写afterPropertiesSet方法,
private final List<TradeProcessService> tradeProcessServiceList: 注入所有实现TradeProcessService接口的实现类;
private Map<String, TradeProcessService> serviceMap:初始化容器;
afterPropertiesSet方法遍历所有实现类所支持的对应实现类;并将结果放在serviceMap容器里面;

5、根据业务类型获取对应的TradeProcessService接口实现类,并调用相关的业务方法;
获取默认的实现类;

根据业务类型获取对应的实现类;

调用方法:
TradeBO tradeBo = getDelegate().getTradeDetail(sysordid);
getDelegate(subTrdType).getTradeBO();
getDelegate(tradeBo.getSubTrdType()).deleteTrade(sysordid);
6、入口调用
private final TradeProcessWrappertradeProcessWrapper;
radeBO trade =tradeProcessWrapper.getTradeDetail(sysOrdId);