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

news2024/10/27 9:47:45

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>> {
    @Resource
    private ViewMapper ViewMapper;

    @Override
    public List<dtoResp> process(dtoReqreq) {
     return null;      
    }
}

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

    @Resource
    private Map<String, IMethodHandler> iMethodHandlerMap; 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2210088.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos7内核升级

案例分析Centos7内核升级 1. 规划节点 节点规划&#xff0c;见表1。 IP主机名节点10.24.2.5k8s-master-node1master节点、仓库节点 表1 节点规划 2. 基础准备 &#xff08;1&#xff09;删除官方yum源 [rootk8s-worker-node1 ~]# rm -rf /etc/yum.repos.d/*&#xff08;…

Redhat的yum源出错——如何将yum源换成阿里云Centos源

文章目录 引言1. 查看和删除已安装的yum包2. 查看系统的版本号3. 镜像文件下载4. 镜像文件安装5. 下载和安装repo文件6. 配置repo文件7. 更新软件包缓存8. 验证9. 问题问题1 参考文献 Linux RedHat更换阿里云yum源 Redhat8.0 yum install问题解决 阿里云镜像 引言 为什么redha…

有关vue路由的学习

导言 由于很久没碰前端了&#xff0c;碰到路由都不太会了。趁着后端对接来记录一下&#xff0c;就当复习。不过由于个人能力有限&#xff0c;这篇会偏向整个过程的实现逻辑&#xff0c;其中有很多具体的方法不会给来&#xff0c;有兴趣的可以去看一下源码~ 目的&#xff1a; …

智能驾驶|迈向智能出行未来,AI如何应用在自动驾驶?

自动驾驶通过人工智能&#xff08;AI&#xff09;、机器学习、传感器融合和实时数据处理&#xff0c;使车辆能够在无需人类干预的情况下自主驾驶。随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;与智能汽车的结合正在成为现代交通运输领域的热潮。无人驾驶…

数学建模算法与应用 第14章 综合评价与决策方法

目录 14.1 层次分析法&#xff08;AHP&#xff09; Matlab代码示例&#xff1a;层次分析法权重计算 14.2 模糊综合评价法 Matlab代码示例&#xff1a;模糊综合评价法 14.3 灰色关联分析法 Matlab代码示例&#xff1a;灰色关联分析 14.4 主成分分析法&#xff08;PCA&…

SAP HCM 并发后台作业,解决考勤评估慢问题

这几天遇到刷卡分离程序需要跑很长时间&#xff0c;严重影响后面的时间评估与推送SucessFactors的考勤异常信息&#xff0c;下图是刷卡分离程序耗时时间&#xff0c;16个小时 记得原来算几万员工工资的时候SAP提供一个标准的并发后台程序RPCS0000&#xff0c;就是核算几万人的工…

MySQL 的数据类型

1.整数类型 1.1 tinyint tinyint 为小整数类型&#xff0c;存储空间为1个字节&#xff08;8位&#xff09;&#xff0c;有符号范围-128 ~ 127&#xff0c;无符号范围 0 ~ 255,此类型通常在数据库中表示类型的字段&#xff0c;如某一字段 type 表示学科,其中 “type1” 表示语文…

Fetch 与 Axios:JavaScript HTTP 请求库的详细比较

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

一起体验AI动手实验,OceanBase 2024 年度发布会精彩预告

2024年OceanBase年度发布会将于10月23日在北京望京凯悦酒店举行。此次大会围绕“不止于记录”的主题&#xff0c;共同探讨当前数据库领域的前沿话题&#xff0c;包含主论坛、分论坛、AI 动手实训营、开源技术交流会等多个环节&#xff0c;诚邀全国各地的企业和开发者共同参与&a…

系统架构设计师考试背记精要

1、架构的本质&#xff1a; &#xff08;1&#xff09;软件架构为软件系统提供了一个结构、行为和属性的高级抽象。&#xff08;2&#xff09;软件架构风格是特定应用领域的惯用模式&#xff0c;架构定义一个词汇表和一组约束。 2、数据流风格&#xff1a;适合于分阶段做数据处…

记录使用appium+夜神模拟器测试多设备时selenium和appium版本不兼容带来的问题

记录使用appium夜神模拟器测试多设备时selenium和appium版本不兼容带来的问题 好不容易解决了selenium和appium的版本冲突问题&#xff08;导致&#xff1a;AttributeError: ‘NoneType’ object has no attribute to_capabilities’异常发生&#xff09; 第二天运行代码发现…

24/10/12 算法笔记 NiN

LeNet、AlexNet和VGG都有一个共同的设计模式&#xff1a;通过一系列的卷积层与汇聚层来提取空间结构特征&#xff1b;然后通过全连接层对特征的表征进行处理。 AlexNet和VGG对LeNet的改进主要在于如何扩大和加深这两个模块。 或者&#xff0c;可以想象在这个过程的早期使用全连…

D35【python 接口自动化学习】- python基础之输入输出与文件操作

day35 文件合并 学习日期&#xff1a;20241012 学习目标&#xff1a;输入输出与文件操作&#xfe63;-47 如何使用python合并多个文件&#xff1f; 学习笔记&#xff1a; 合并文件需求分析 合并两个文件 代码实现 # 合并两个文件 with open(demo1.txt) as f1:file_data_1f…

Clickhouse 安装部署说明手册

Clickhouse 安装部署说明手册 准备工作 操作系统 CentOS Linux release 7.5.1804 详细信息&#xff1a; LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:pr…

【LeetCode】动态规划—95. 不同的二叉搜索树 II(附完整Python/C++代码)

动态规划—95. 不同的二叉搜索树 II 题目描述前言基本思路1. 问题定义二叉搜索树的性质&#xff1a; 2. 理解问题和递推关系递归构造思想&#xff1a;状态定义&#xff1a;递推公式&#xff1a;终止条件&#xff1a; 3. 解决方法递归 动态规划方法&#xff1a;伪代码&#xff…

Linux高级编程_32_磁盘映射

文章目录 磁盘映射相关函数mmap函数作用&#xff1a; munmap函数作用&#xff1a; truncate 函数作用&#xff1a; 语法&#xff1a;使用步骤&#xff1a; 磁盘映射 概述&#xff1a; > 存储映射 I/O (Memory-mapped I/O) 使一个磁盘文件与存储空间中的一个缓冲区相映射。…

Excel中Ctrl+e的用法

重点&#xff1a;想要使用ctrle&#xff0c;前提是整合或拆分后的结果放置的单元格必须和被提取信息的单元格相邻&#xff0c;且被提取信息的单元格也必须相连。 下图为错误示例 这样则可以使用ctrle 1、信息整合 2、提取信息 3、添加符号 4、信息顺序调换 5、数字提取 crtle还…

AI测试之 TestGPT

如今最火热的技术莫非OpenAI的ChatGPT莫属&#xff0c;AI技术也在很多方面得到广泛应用。今天我们要介绍的TestGPT就是一个软件测试领域中当红的应用。 TestGPT是什么&#xff1f; TestGPT是一家总部位于以色列特拉维夫的初创公司 CodiumAI Ltd.&#xff0c;发布的一款用于测…

Android:记录一个打包发布版的release包以后闪退的问题

个人感觉其实release闪退的问题挺难排查的&#xff0c;因为release包运行起来as捕获不到相应的应用程序进程&#xff0c;从而不易查看到日志&#xff0c;也是我玩得不溜&#xff0c;大家有不同的方法可以评论区探讨&#xff0c;我也定期回复一些评论一起讨论。以下是我遇到的情…

高效的读书与笔记管理:打造个人知识体系

01 读书学习的常见问题 1、读书⼯具分散&#xff0c;划线和笔记分散&#xff0c;导致我们的复习、搜索效率低。⽐如不同书籍中&#xff0c;提到了同⼀个问题的观点&#xff0c;很难进行关联。 2、读书&#xff0c;仅限于读&#xff0c;知道别⼈的观点&#xff0c;但是缺乏内…