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

使用枚举来实现策略模式

  1. 使用很多if else的场景

    1. 	public void save(String type,Object data){if("db".equals(type)){saveInDb(data);}else if("file".equals(type)){saveInFile(data);}else if("oss".equals(type)){saveInOss(data);}}
      
  2. 使用枚举来解决

    1. public enum SaveStrategyEnum{DB("db"){@Overridepublic void save(Object obj){System.out.println("save in db:"+obj);}},FILE("file"){@Overridepublic void save(Object obj){System.out.println("save in file:"+ obj);}},OSS("oss"){@Overridepublic void save(Object obj){System.out.println("save in oss:" +obj);}};private String type;SaveStrategyEnum(String type){this.type = type;}public abstract void save(Object obj);public static SaveStrategyEnum typeOf(String type){for(SaveStrategyEnum strategyEnum : values()){if(strategyEnum.type.equalsIgnoreCase(type)){return strategyEnum;}}return null;}
      }public void save(String type,Object data){SaveStrategyEnum strategyEnum = SaveStrategyEnum.typeOf(type);if(strategyEnum != null){strategyEnum.save(data);}
      }
      

相关文章:

使用枚举来实现策略模式

使用很多if else的场景 public void save(String type,Object data){if("db".equals(type)){saveInDb(data);}else if("file".equals(type)){saveInFile(data);}else if("oss".equals(type)){saveInOss(data);}}使用枚举来解决 public enum Save…...

区块链技术原理

1. 引言 区块链的定义 区块链是一种分布式账本技术(Distributed Ledger Technology,DLT),其核心特征是通过密码学的方式将数据打包成一个个区块,按时间顺序依次相连,形成一个不可篡改、公开透明的链式数据…...

Spring Boot 接口数据加解密

今天聊下接口安全问题,涉及到接口的加密和解密 经常和外部单位接口调用梳理了相关技术方案,主要的需求点如下: 1,尽量少改动,不影响之前的业务逻辑 2,考虑到时间紧迫性,可采用对称性加密方式&…...

2018年计算机网络408真题解析

第一题: 解析:TCP/IP体系结构应用层常用协议及其相应的运输层协议 TCP协议是面向连接可靠数据传输服务,UDP无连接不可靠的数据传输服务,IP无连接不可靠的数据连接服务。 FTP协议,SMTP协议和HTTP协议使用TCP协议提供的面…...

Javascript 脚本查找B站限时免费番剧

目录 前言 脚本编写 脚本 前言 B站的一些番剧时不时会“限时免费”,白嫖党最爱,主打一个又占到便宜的快乐。但是在番剧索引里却没有搜索选项可以直接检索“限时免费”的番剧,只能自己一页一页的翻去查看,非常麻烦。 自己找限…...

YoloV10改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发

摘要 在目标检测领域,YoloV10以其高效和准确的性能而闻名。然而,为了进一步提升其检测能力,我们引入了DeBiFormer作为YoloV10的主干网络。这个主干网络的计算量比较大,不过,上篇双级路由注意力的论文受到很大的关注,所以我也将这篇论文中的主干网络用来改进YoloV10,卡多…...

C#学习笔记(一)

C#学习笔记(一) 简介第一章 上位机开发环境之 VS 使用和.NET 平台基础一、安装软件二、创建项目三、第一个Hello world四、解决方案与项目五、Debug 和 Release 的区别六、代码的生产过程七、CLR的其它功能 简介 C# .NET工控上位机开发 在工控领域&…...

MATLAB边缘检测

一、目的: 熟悉边缘检测原理,并运用matlab软件实现图像的canny边缘检测,体会canny边缘检测的优缺点。 二、内容: 编写matlab程序,实现对lena图像的边缘检测,输出程序运行结果。 三、原理或步骤&#x…...

Tortoise SVN 安装汉化教程(乌龟SVN)

1.首先下载 去官网下载 如果下载比较慢的,链接自取 https://pan.quark.cn/s/cb6f2eee3f90 2. 安装Tortoise SVN 无脑next到完成 最后到桌面右键 你就发现svn出来了,但是是英文的!!!! 像我这种英文不好的…...

深入了解Spring重试组件spring-retry

在我们的项目中,为了提高程序的健壮性,很多时候都需要有重试机制进行兜底,最多就场景就比如调用远程的服务,调用中间件服务等,因为网络是不稳定的,所以在进行远程调用的时候偶尔会产生超时的异常&#xff0…...

海南聚广众达电子商务咨询有限公司靠谱吗怎么样?

在当今这个数字化浪潮席卷全球的时代,抖音电商以其独特的魅力成为了众多商家争相入驻的新蓝海。而在这片浩瀚的电商海洋中,如何找到一家既专业又可靠的合作伙伴,成为了众多商家心中的一大难题。今天,我们就来深入剖析一下海南聚广…...

Java的魔法世界:面向对象编程(OOP)是什么?

这个嘎嘎重要 面向对象编程(OOP)是让Java像玩具世界一样,把现实中的东西变成“对象”,然后让这些对象去互动。你可以想象OOP是Java的“魔法世界”,通过创建“对象”(Object),让它们有…...

软件测试笔记——接口测试

文章目录 一、概念1.接口测试流程2.URL3.HTTP协议4.RESTful5.案例介绍 二、Postman1.Postman软件2.登录接口调试-获取验证码3.登录接口调试-自动关联数据4.合同上传接口-提交请求数据5.提交参数查询6.批量执行7.接口用例设计8.断言8.参数化三、案例1.项目2.课程添加3.课程列表查…...

东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成

东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成 文章目录 东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成一 简述二 配置 cfg.xml1 启用密码访问2 Spring Boot 连接 TongRDS 三 配置 TongRDS 开机自启1 配置 RdsCenter1)设置 RdsCenter.servi…...

在 VS Code 中调试 Tensor 形状不显示的问题及解决方案

文章目录 常见问题解决方案1. 定制类包装和 __repr__ 方法 解释如何应用总结 在使用 VS Code 调试 PyTorch 代码时,可能会遇到一个常见问题:调试时 variables 窗口中不显示 Tensor 的形状信息。这会使得调试时观察数据的结构变得不便,尤其是在…...

Linux 时间获取全面总结

1. 引言 在Linux操作系统中,获取时间是一个基本且重要的功能。本文旨在全面总结Linux系统中获取时间的方法,包括命令行工具和编程接口,帮助读者深入理解Linux时间管理的机制。 2. 命令行工具 2.1 date 命令 date 命令是Linux中最常用的命…...

SQL 自学:游标(Cursors)的理解与应用

在 SQL 中,游标(Cursor)是一种用于处理从数据库中检索出的多行数据的机制。它允许我们逐行地处理查询结果集,而不是一次性处理整个结果集。 一、游标是什么 游标可以看作是一个指向结果集的指针。通过游标,我们可以在…...

IO多路复用概述与epoll简介

一、引言 在网络编程中,高并发的场景下处理大量连接请求是一项挑战。传统的阻塞式IO模型会让线程在等待数据的过程中陷入停顿,导致系统效率低下。为了解决这个问题,IO多路复用应运而生。它允许一个线程同时监听多个文件描述符(如…...

关于region_to_label算子的想法

1,定义:将区域进行编码 2,如何做到的:底层逻辑应该是paint_region。通过一个小的循环,按顺序将区域从灰度值1开始11的往上喷。 3,有什么作用:目前能用到的,是有字典的作用&#xff0…...

uni-app 实现好看易用的抽屉效果

在移动应用开发中,抽屉效果是一种常用的用户界面设计,它能有效地节省空间,同时提供导航和其他功能。本文将介绍如何在uni-app中实现一个好看且易用的抽屉效果,帮助你提升应用的用户体验。 一、什么是抽屉效果? 抽屉效…...

Windows下OpenClaw安装指南:一键对接Phi-3-mini-128k-instruct模型

Windows下OpenClaw安装指南:一键对接Phi-3-mini-128k-instruct模型 1. 为什么选择OpenClawPhi-3-mini组合? 去年我在尝试自动化办公流程时,发现市面上的RPA工具要么太笨重,要么需要复杂的编程。直到遇到OpenClaw这个开源智能体框…...

ai域名后缀注册对SEO有影响吗

ai域名后缀注册对SEO有影响吗 在当今互联网时代,域名选择对于一个网站的成功至关重要。尤其是对于那些在科技、人工智能(AI)等前沿领域的企业和个人来说,ai域名后缀注册的问题更是备受关注。本文将从多个角度探讨ai域名后缀注册对…...

运放稳定性补偿实战:从Riso到双反馈,如何为你的MOSFET驱动电路‘降噪’

运放稳定性补偿实战:从Riso到双反馈的MOSFET驱动电路降噪方案 在高速开关电源和电机驱动系统中,工程师们经常需要面对一个令人头疼的问题——当MOSFET栅极电容与PCB寄生参数形成复杂网络时,电路会出现难以消除的振铃和过冲。这种现象不仅影响…...

贾子科学定理(Kucius Science Theorem):重构科学本质——公理驱动与结构化范式的确立

贾子科学定理(Kucius Science Theorem):重构科学本质——公理驱动与结构化范式的确立摘要: 贾子科学定理颠覆传统“可证伪性”标准,提出科学本质为“公理驱动可结构化”,构建TMM三层体系(真理层…...

OpenClaw备份方案:Qwen3-4B-Thinking自动化数据归档系统

OpenClaw备份方案:Qwen3-4B-Thinking自动化数据归档系统 1. 为什么需要自动化备份系统 作为一个长期与代码和数据打交道的开发者,我经历过太多次"数据灾难"——硬盘突然损坏导致项目丢失,误删重要文件后无法恢复,甚至…...

卓岚5143D网关+Modbus Slave调试全流程:从硬件连接到MQTT数据订阅

卓岚5143D网关与Modbus Slave协同调试实战指南 在工业物联网项目中,Modbus协议因其简单可靠的特点,至今仍是设备通信的主流选择。而将传统串口设备接入现代MQTT物联网平台时,网关设备的选择与配置往往成为关键难点。本文将基于卓岚5143D网关&…...

OpenClaw自动化测试:Phi-3-vision-128k-instruct版本升级对比

OpenClaw自动化测试:Phi-3-vision-128k-instruct版本升级对比 1. 测试背景与动机 上周在星图镜像广场发现Phi-3-vision-128k-instruct的新版本镜像更新,作为长期使用OpenClaw进行自动化测试的技术爱好者,我决定系统性地验证这个号称"支…...

基于Yolov5的钢轨表面缺陷检测:数据集与含训练好的模型

基于yolov5的钢轨表面缺陷检测 数据集含训练好的模型一、项目概述 本项目基于YOLOv5 7.0版本构建,专注于钢轨表面缺陷检测任务,提供了完整的模型训练、推理、导出及性能评估工具链。项目包含47个核心文件,涵盖数据加载、模型构建、训练优化、…...

Claude Code 接入 DeepSeek、GLM、MiniMax 等国产大模型,保姆级教程!

每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型! 这份指南是专门为那些“只想赶紧上手开干”的朋友准备的。 咱们不整那些虚头巴脑的理论,直接帮你搞定这几件事: 怎么把 Claude Code 装好如何确定它已经能跑通…...

2025届毕业生推荐的六大降重复率网站推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 针对用户试图降低文本里人工智能生成内容的可识别度,降AIGC工具发挥作用&#xf…...