public interface strategy extends InitializingBean{
void handler(JsonObject z2CmdReq);
}
public class CtrlInnerPolicyStrategy implements strategy{
@Override
public void handler(JsonObject z2CmdReq){
//TODO
}
@Override
public void afterPropertiesSet(){
CmdStrategyFactory.register(CmdTypeConstant.CTRL_INNER_POLICY,this);
}
}
@Component
public class CmdStrategyFactory{
private static Map<String,Strategy> map = new HashMap<>();
public static Strategy getSpecStrategy(String cmd){
return map.get(cmd);
}
public static void register(String cmd,Strategy handler){
if(StringUtils.isEmpty() &&null == handler){
return;
}
map.put(cmd,handler);
}
}
使用:
CmdStrategyFactory.getSpecStrategy(z2CmdReq.getCmdType()).handler(JsonObject z2CmdReq);