一、创建工厂类
public class OpenStrategyFactory {
private static final Map<String, OpenApiStrategy> STRATEGY_MAP = new HashMap<>();
// 枚举值维护
static {
STRATEGY_MAP.put("businessdata", new BusinessImpl());
STRATEGY_MAP.put("changedata", new ChangeImpl());
STRATEGY_MAP.put("relationdata", new RelationImpl());
STRATEGY_MAP.put("score", new ScoreImpl());
STRATEGY_MAP.put("specialdata", new SpecialImpl());
STRATEGY_MAP.put("statutedata", new StatuteImpl());
}
public static OpenApiStrategy getOpenStrategy(String strategy) {
return STRATEGY_MAP.get(strategy);
}
private OpenStrategyFactory() {}
}
通过不同的字段,工厂类中决定调用哪个方法。
二、创建策略接口
public interface OpenApiStrategy {
/**
* 调用对应的接口得到要获取字段的值
* @return 字段值集合
*/
Map<String, String> getData(String value1, Map<String, String> dataNode, ResultDTO monitorRuleObj);
}
三、创建实现类
public class BusinessImpl implements OpenApiStrategy {
@Override
public Map<String, String> getData(OpenProductServer openProductServer, Map<String, String> dataNode, MonitorResultDTO monitorRuleObj) {
// TODO 具体执行逻辑
}
}
四、调用
String openUrl = "statutedata";
OpenApiStrategy openStrategy = OpenStrategyFactory.getOpenStrategy(openUrl);
Map<String, String> data = openStrategy.getData(value1, dataNode, monitorInfo);