1.策略接口
public interface IStrategy {
/**
* 根据id获取对应数据
* @param dispatchQuery
*/
<T> T getData(QueryParams queryParams);
}
2. 策略工厂
@Component
public class StrategyFactory {
/**
* 关键功能 Spring 会自动将 EntStrategy 接口的类注入到这个Map中
*/
@Autowired
private Map<String, IStrategy> strategies = new ConcurrentHashMap<>();
public IStrategy getStrategy(String graphId){
IStrategy strategy = strategies.get(graphId);
if(null == strategy) {
throw new BizException(ResultEnum.STRATEGY_NOT_EXITS);
}
return strategy;
}
}
这里的strategies map用@Autowired修饰, spring IOC会自动将实现Istragety的类put到该map中