当前位置: 首页 > news >正文

设计模式之-策略模式配合枚举

1、定义枚举接收不同的参数使用不同的handler,

在这里插入图片描述
在这里插入图片描述
2、定义个handerl接口,统一方法处理,每个handler实现该接口

public interface IMethodHandler<T, R> {/*** 处理统一入口** @param req*/R process(T req);
}
```java

3、定义一个简单工厂统一处理

@Component
public class ParamTypeFactory {private ParamTypeFactory() {}public IMethodHandlergetParamHandler(String paramType) {//根据类型获取对应的处理器Class<IMethodHandler> clazz = ParamHandlerEnums.getParamHandler(paramType);if (Objects.isNull(clazz)) {throw new BusinessException("异常");}//处理Bean获取return SpringUtil.getBean(clazz);}
}
```java

4、A\B\C三个handler实现

@Component
@Slf4j
public class AParamHandler implements IMethodHandler<dtoReq, List<dtoResp>> {@Resourceprivate ViewMapper ViewMapper;@Overridepublic List<dtoResp> process(dtoReqreq) {return null;      }
}

通过入方式将枚举入参作为map的key,这样生成一个HandlerMap键值对

    @Resourceprivate Map<String, IMethodHandler> iMethodHandlerMap; 
http://www.lryc.cn/news/460948.html

相关文章:

  • 滑动窗口经典例题
  • PetaLinux工程的常用命令——petalinux-create
  • Unity的Compute Shader如何进行同步?
  • 大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
  • git 与 github 同步
  • 数学建模算法与应用 第10章 多元分析及其方法
  • 西门子828d的plc一些信息记录
  • 为啥我的Python这么慢 - 项查找 (二)
  • 计算机毕业设计python+spark知识图谱课程推荐系统 课程预测系统 课程大数据 课程数据分析 课程大屏 mooc慕课推荐系统 大数据毕业设计
  • 阿里 C++面试,算法题没做出来,,,
  • 【自动驾驶汽车通讯协议】GMSL通信技术以及加串器(Serializer)解串器(Deserializer)介绍
  • Uiautomator2与weditor配置一直报错咋办
  • Java后端面试题:MySQL篇
  • # Excel 操作大全
  • javascript中快速获取最大值和最小值
  • git merge啥意思
  • Web编程---Servlet技术
  • 【cocos creator】输入框滑动条联动小组建
  • Flink时间窗口程序骨架结构
  • 计算机视觉之可做什么
  • 观察者模式的思考
  • ORACLE SELECT INTO 赋值为空,抛出 NO DATA FOUND 异常
  • GPT提示词
  • Redis协议详解及其异步应用
  • LeetCode213:打家劫舍II
  • linux一二三章那些是重点呢
  • C语言中的程序入口:超越main函数的探索
  • 《面试之MQ篇》
  • Git 分支操作-开发规范
  • JSONArray根据指定字段去重