工厂模式用于干掉大量的if-else
,策略模式用于挪去臃肿的业务代码,还可以进一步升级加上模板模式,以及抽取成Starter
public interface HandlerStrategy extends InitializingBean {void findSyncOrders();
}
public class SalesPlatformFactory {private static final Map<String, HandlerStrategy> STRATEGY_MAP = new ConcurrentHashMap<>();public static HandlerStrategy getInvokeStrategy(String code) {return STRATEGY_MAP.get(code);}public static void register(SalesPlatFormEnum salesPlatFormEnum, HandlerStrategy handlerStrategy) {if (salesPlatFormEnum == null || handlerStrategy == null) {return;}STRATEGY_MAP.put(salesPlatFormEnum.getCode(), handlerStrategy);}
}
public class OttoHandler implements HandlerStrategy {@Overridepublic void findSyncOrders() {}@Overridepublic void afterPropertiesSet() throws Exception {SalesPlatformFactory.register(SalesPlatFormEnum.OTTO, this);}
}