1:概述
在实际的业务编程中,其实很少涉及一些技术上的难点,大多时候大家还都是进行if-else的业务逻辑编程(特别是修补别人的shi山代码的时候),所以,怎么能优雅的实现if-else逻辑就是一个很值得去研究的点了,今天小威哥就给大家带来我自己非常喜欢用的map-fuction模式去实现复杂的if-else逻辑
2:过往实现方式
最朴素也最简单的实现方法就是直接if-else
public void deal(String param){
/**
* 执行处理
*/
if(````){
}esle{
}
}
如果稍微复杂一些的话,我们还可以使用策略模式啊,责任链模式等的方法串联起来。
3:map-fuction模式
该模式最大的特点便是使用了map和函数式的方法去进行预先的定义
private static final Map<String, Function<String, String>> DEAL_MAP = Maps.newHashMap();
static {
DEAL_MAP.put("one", param -> dealByOne(param));
DEAL_MAP.put("two", param -> dealByTwo(param));
}
// 测试
public static void main(String[] args) {
System.out.println(getResult("one", "paramStr"));
System.out.println(getResult("two", "paramStr"));
System.out.println(getResult("test", "paramStr"));
}
private static String getResult(String type, String param) {
if (StringUtils.isBlank(type)) {
return null;
}
Function<String, String> function = DEAL_MAP.get(type);
//留一个拿不到方法的兜底方案
if (null == function) {
return null;
}
return function.apply(param);
}
private static String dealByOne(String param) {
return param + "-dealOne";
}
private static String dealByTwo(String param) {
return param + "-dealTwo";
}
4:总结
该模式是一种比较简单的设计模式,但是可以搭配其他的设计模式达到一个非常好的组好效果,非常适用于那些多条件判断的业务类型。