首页 > 其他 > 详细

策略模式干掉if-else,switch

时间:2020-12-16 18:47:54      阅读:36      评论:0      收藏:0      [点我收藏+]

1.传统if -else 写法

String nodeModelStr = "";
if (nodeType == NodeType.START){
  StartModel startModel = JSON.parseObject(nodeModelStr,StartModel.class)
}else if(nodeType == NodeType.END){
  EndModel endModel = JSON.parseObject(nodeModelStr,EndModel.class)
}

2.策略模式写法

使用了lambda表示里,map里key是NodeType,value是方法对象Function<String,BaseModel>(方法入参是String类型,返回值类型是BaseModel)
如下示例中nodeModelStr就是方法入参,返回值是BaseModel

private static Map<NodeType, Function<String,BaseModel>> checkModelTypeDispatcher = new HashMap<NodeType, Function<String, BaseModel>>(){{
        put(NodeType.START,nodeModelStr -> JSON.parseObject(nodeModelStr,StartModel.class));
        put(NodeType.END,nodeModelStr -> JSON.parseObject(nodeModelStr,EndModel.class));
}};
Function<String,BaseModel> function = checkModelTypeDispatcher.get(nodeType);
BaseModel baseModel = function.apply(JSON.toJSONString(node));

策略模式干掉if-else,switch

原文:https://www.cnblogs.com/PythonOrg/p/14145222.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!