工厂模式用于干掉大量的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 {
@Override
public void findSyncOrders() {
}
@Override
public void afterPropertiesSet() throws Exception {
SalesPlatformFactory.register(SalesPlatFormEnum.OTTO, this);
}
}