设计模式之-策略模式配合枚举
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;
相关文章:
设计模式之-策略模式配合枚举
1、定义枚举接收不同的参数使用不同的handler, 2、定义个handerl接口,统一方法处理,每个handler实现该接口 public interface IMethodHandler<T, R> {/*** 处理统一入口** param req*/R process(T req); } java3、定义一个简单工厂统一处理 Comp…...
滑动窗口经典例题
链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 读入n,xn,xn,x,给出nnn个数a[1],a[2],……,a[n]a[1],a[2],……,a[n]a[1],a[2],……,a[n],求最小的区间[l,r][l,r][l,r],使a[l]a[l1]……...
PetaLinux工程的常用命令——petalinux-create
petalinux-create:此命令创建新的PetaLinux项目或组件。 注:有些命令我没用过,瞎翻译有可能会翻译错了,像是和fpgamanager相关的部分。 用法: petalinux-create [options] <-t|--type <TYPE> <-n|--name <COMPONEN…...
Unity的Compute Shader如何进行同步?
在Unity的Compute Shader中,同步的概念与常规的CPU编程有所不同,因为Compute Shader主要是并行地在GPU上执行大量简单任务。GPU的设计初衷就是为了并行处理大量数据,因此Compute Shader的执行通常被设计为异步的,并且不直接受到CP…...
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
git 与 github 同步
1.配置账户 git config --global user.name "你的用户名" git config --global user.email "你的邮箱" 2.输入命令创建ssh key $ ssh-keygen -t rsa -C "邮箱" //你自己注册GitHub的邮箱 输入命令之后提示输入密码,回车直到出现…...
数学建模算法与应用 第10章 多元分析及其方法
目录 10.1 因子分析 Matlab代码示例:因子分析 10.2 主成分分析 Matlab代码示例:主成分分析 10.3 典型相关分析 Matlab代码示例:典型相关分析 10.4 判别分析 Matlab代码示例:线性判别分析 10.5 对应分析 Matlab代码示例&a…...
西门子828d的plc一些信息记录
1、虽然是200的plc但是引入了DB的形式替代原来的V存储区。 2、用户自定义DB块范围,DB9000-DB9063,共64个DB块。 可用地址范围如上图 机床MCP483面板地址表,其它类型的面板地址自己在828d简明调试手册里查看。 如何上载828d的plc程序: 1.通…...
为啥我的Python这么慢 - 项查找 (二)
上一篇为啥我的Python这么慢, 字符串的加和和join被陈群主分享到biopython-生信QQ群时,乐平指出字典的写法存在问题,并给了一篇知乎的链接https://zhuanlan.zhihu.com/p/28738634指导如何高效字典操作。 根据那篇文章改了两处写法,如下 (存储…...
计算机毕业设计python+spark知识图谱课程推荐系统 课程预测系统 课程大数据 课程数据分析 课程大屏 mooc慕课推荐系统 大数据毕业设计
指导教师意见: 1.对“文献综述”的评语: 对教育领域数据可视化的相关背景和现状做了综述,明确了课题的研究目标和研究重点,并对研究手段进行了概述。为后面的毕业设计做好了准备。 对本课题的深度、广度及工作量的…...
阿里 C++面试,算法题没做出来,,,
我本人是非科班学 C 后端和嵌入式的。在我面试的过程中,竟然得到了阿里 C 研发工程师的面试机会。因为,阿里主要是用 Java 比较多,C 的岗位比较少,所以感觉这个机会还是挺难得的。 阿里 C 研发工程师面试考了我一道类似于快速…...
【自动驾驶汽车通讯协议】GMSL通信技术以及加串器(Serializer)解串器(Deserializer)介绍
文章目录 0. 前言1. GMSL技术概述2. 为什么需要SerDes?3. GMSL技术特点4.自动驾驶汽车中的应用5. 结论 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准…...
Uiautomator2与weditor配置一直报错咋办
作者在配置这两个的时候绞尽脑汁了,u2的init总是报错并且无法自动在手机上安装atx,weditor可以打开但是只要对元素操作或者任意操作就会让你去重新init,搞得作者焦头烂额,而且网上各种各样的报错信息眼花缭乱,作者几乎…...
Java后端面试题:MySQL篇
目录 MySQL基础部分 1. SELECT语句完整的执行顺序是什么? 2. 说一说内连接和外连接。 3. 请说说数据库三大范式。 4. 请你说说视图的作用,视图可以更改么? 架构 5. 请你说一说MySQL架构。 6. 请你说说一条SQL语句的执行过程ÿ…...
# Excel 操作大全
Excel 操作大全 文章目录 Excel 操作大全单元格文本换行计算SUM 单元格 文本换行 设置自动换行,在文本前面使用 AltEnter键即可换行文本前面可以输入空格实现段前缩进的效果 计算SUM 求和函数...
javascript中快速获取最大值和最小值
在 ES6 中,你可以使用 Math.max 和 Math.min 函数来获取一组数字中的最大值和最小值。这两个函数都接受一个可变数量的参数,并返回这些参数中的最大值或最小值。 以下是一个示例: const numbers [1, 2, 3, 4, 5];const max Math.max(...n…...
git merge啥意思
git merge 是 Git 中的一个命令,用于将一个分支的更改合并到另一个分支中。当你在一个项目中有多个开发人员同时工作,或者你在不同的特性分支上开发新功能时,git merge 命令就非常有用。它可以帮助你将不同分支上的更改整合在一起。 git mer…...
Web编程---Servlet技术
文章目录 一、目的二、原理三、过程1. TestServlet02文件演示效果2. TestServlet03文件演示效果3. TestServlet04与TestServlet05文件演示效果4. 控制台展示生命周期过程 四、代码web.xml文件TestServlet02.java文件TestServlet03.java文件TestServlet04.java文件TestServlet05…...
【cocos creator】输入框滑动条联动小组建
滑动条滑动输入框内容会改变 输入框输入,滑动条位置改变 const { ccclass, property } cc._decorator;ccclass() export default class SliderEnter extends cc.Component {property({ type: cc.Float, displayName: "最大值", tooltip: "" }…...
Flink时间窗口程序骨架结构
前言 Flink 作业的基本骨架结构包含三部分:创建执行环境、定义数据处理逻辑、提交并执行Flink作业。 日常大部分 Flink 作业是基于时间窗口计算模型的,同样的,开发一个Flink时间窗口作业也有一套基本的骨架结构,了解这套结构有助…...
5分钟极速部署!Billion Mail容器化方案助力邮件营销升级 [特殊字符]
5分钟极速部署!Billion Mail容器化方案助力邮件营销升级 🚀 【免费下载链接】BillionMail Billion Mail is a future open-source email marketing platform designed to help businesses and individuals manage their email campaigns with ease 项目…...
H3C无线调优案例
用户报无线经常掉线,用户现场无线用的H3C 首先登录无线控制器搜集对应接入体验差的AP的诊断日志,从日志中可以看到AP有线上行口的组播广播包数量远远超过了单播报文;没有CRC错误报文,说明网线质量没有问题。接着看:我们…...
别再乱改文件夹权限了!深入理解IIS应用程序池标识与ASP.NET临时目录的权限管理
深入解析IIS应用程序池权限管理:从临时目录到生产环境的最佳实践 当你在IIS中部署ASP.NET应用时,是否遇到过这样的错误:"当前标识(IIS APPPOOL\DefaultAppPool)没有对Temporary ASP.NET Files的写访问权限"?这个看似简单…...
KKManager终极指南:三步轻松管理你的游戏Mod和插件
KKManager终极指南:三步轻松管理你的游戏Mod和插件 【免费下载链接】KKManager Mod, plugin and card manager for games by Illusion that use BepInEx 项目地址: https://gitcode.com/gh_mirrors/kk/KKManager KKManager是一款专为Illusion系列游戏设计的M…...
Cesium使用
Cesium官网:https://cesiumjs.org 官方API文档:https://cesium.com/learn/ion-sdk/ref-doc 中文API文档:https://cesium.xin/cesium/cn/Documentation1.95 https://cesium.xin Cesium中文社区:http://cesiumcn.org …...
BootstrapBlazor通知组件:如何实现声音提示功能
BootstrapBlazor通知组件:如何实现声音提示功能 【免费下载链接】BootstrapBlazor 项目地址: https://gitcode.com/gh_mirrors/bo/BootstrapBlazor BootstrapBlazor是一个功能丰富的Blazor组件库,提供了各种UI组件来增强Web应用的用户体验。其中…...
AnythingtoRealCharacters2511应用案例:为小说角色生成真人参考形象
AnythingtoRealCharacters2511应用案例:为小说角色生成真人参考形象 1. 引言:从动漫到真人的魔法转换 想象一下,当你阅读一本精彩的小说时,脑海中浮现的角色形象突然变得栩栩如生。这正是AnythingtoRealCharacters2511能够实现的…...
Sqoop性能调优之 --fetch-size:小参数,大作用
Sqoop性能调优之 --fetch-size:小参数,大作用1. 引言:被忽视的"隐形冠军"2. 什么是 --fetch-size?2.1 基本定义2.2 核心作用3. 底层原理:从逐行到批量3.1 没有 --fetch-size 的情况(逐行读取&…...
ViGEmBus如何解决Windows游戏控制器兼容性难题?
ViGEmBus如何解决Windows游戏控制器兼容性难题? 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus是一款专业的Windows内核模式驱动程序&a…...
如何高效使用开源工具:3个实战技巧快速上手WebPlotDigitizer图表数据提取
如何高效使用开源工具:3个实战技巧快速上手WebPlotDigitizer图表数据提取 【免费下载链接】WebPlotDigitizer WebPlotDigitizer: 一个基于 Web 的工具,用于从图形图像中提取数值数据,支持 XY、极地、三角图和地图。 项目地址: https://gitc…...
