策略模式+模版模式+工厂模式
工厂模式:
(1)避免类中出现过多的组合依赖
(2)同时减少代码中出现过多的if...else if...语句
(2)将调用者跟我们的实现类解耦
模版模式:
(1)功能复用
(2)方便扩展
策略模式:
(1)方便功能的扩展和维护
(2)防止过多的业务耦合
(3)避免使用多重条件判断
1. 抽象类
/*** 策略模式:不同类型选择不同的实现策略* */
public interface AbstractStrategy {/*** 模版模式:不同策略实现同一接口的共性部分(公共方法)* */default void commentMeth(){System.out.println("模版方法");}void handle(Object object);
}
2.抽象的实现
@Service
public class AchieveOneStrategy implements AbstractStrategy{@Overridepublic void handle(Object obj) {}
}
@Service
public class AchieveTwoStrategy implements AbstractStrategy{@Overridepublic void handle(Object object) {}
}
@Service
public class AchieveThreeStrategy implements AbstractStrategy{@Overridepublic void handle(Object object) {}
}
3.枚举
public enum StrategyTypeEnum {ONE_STRATEGY(0,AchieveOneStrategy.class),TWO_STRATEGY(1,AchieveTwoStrategy.class),THREE_STRATEGY(2,AchieveThreeStrategy.class),;Integer type;Class<? extends AbstractStrategy> aClass;StrategyTypeEnum(Integer type, Class<? extends AbstractStrategy> aClass){this.type = type;this.aClass = aClass;}
}
4.工厂
/*** 工厂模式:根据不同类型创建不同实例* */
@Service
public class StrategyFactory {@Autowiredprivate ApplicationContext applicationContext;static HashMap<Integer, Class<? extends AbstractStrategy>> strategyHashMap = new HashMap<>();static {for (StrategyTypeEnum value : StrategyTypeEnum.values()) {strategyHashMap.put(value.type, value.aClass);}}public AbstractStrategy executeStrategy(Integer flag){Class<? extends AbstractStrategy> aClass = strategyHashMap.get(flag);return applicationContext.getBean(aClass);}
}
相关文章:
策略模式+模版模式+工厂模式
工厂模式: (1)避免类中出现过多的组合依赖 (2)同时减少代码中出现过多的if...else if...语句 (2)将调用者跟我们的实现类解耦 模版模式: (1)功能复用 &…...
云计算平台层(PaaS)指的是什么?常见的应用场景盘点
云计算平台层(PaaS)指的是什么?云计算平台层(PaaS),全称PlatformasaService(平台即服务),是云计算服务的一种重要模式。为用户提供了一个基于云端的开发和部署环境,允许用户开发、运…...
搜索引擎简介
搜索引擎架构 整个搜索引擎分为三个系统 爬虫系统 索引系统 线上搜素服务 爬虫系统 爬虫分为两个阶段: 第一阶段:根据目标网站的列表页,爬对应的文档 URL 第二阶段:根据文档 URL,下载文档内容 触发器࿱…...
每天认识几个maven依赖(aislib+A1TRMI+Andromda+Annogen)
十七、aislib 1、是什么? aislib用于与人工智能(AI)相关的任务。这可能包括支持机器学习、数据分析或其他 AI 功能的工具。用于集成或扩展 AI 功能到 Java 项目中。 2、有什么用? 机器学习: 提供各种机器学习算法和…...
每日算法1(快慢指针)
通过一道题来了解快慢指针 这是一道力扣的算法题,首先来读题,是删除链表的中间元素,先来分析一下题,链表一共有三种可能,第一种是空链表,第二种链表的个数是偶数,第三种是链表的个数是奇数&…...
基于RealSense D435相机简单实现手部姿态重定向
基于Intel RealSense D435 相机和 MediaPipe的手部姿态检测,进一步简单实现手部姿态与机器人末端的重定向。 假设已经按照【基于 RealSenseD435i相机实现手部姿态检测】配置好所需的库和环境,并且有一个可以控制的机器人接口。 一、手部姿态重定向介绍 …...
Linux下搭建iSCSI共享存储-Tgt
Linux下搭建iSCSI共享存储-Tgt 在Linux上使用tgt搭建iSCSI共享存储,可以实现多个客户端同时访问共享存储。 1. 安装iSCSI Target软件包 使用下面命令安装: # centos sudo yum install scsi-target-utils sudo systemctl status tgtd# ubuntu sudo ap…...
js中正则表达式中【exec】用法深度解读
exec() 是 JavaScript 正则表达式对象(RegExp)中的一个方法,用于匹配字符串中的特定模式,并返回匹配结果。它比 test() 和 match() 更强大,因为它不仅仅返回匹配成功与否,还返回匹配的具体内容及其相关信息…...
Dockerfile的详解与案例
《Dockerfile 详解与案例》 一、Dockerfile 简介 Dockerfile 是一个用来构建 Docker 镜像的文本文件,它包含了一系列指令,用于描述如何创建一个 Docker 镜像。通过 Dockerfile,你可以定义镜像的基础环境、安装软件包、设置环境变量等操作&a…...
[spring]用MyBatis XML操作数据库 其他查询操作 数据库连接池 mysql企业开发规范
文章目录 一. MyBatis XML配置文件1. 配置链接字符串和MyBatis2. 写持久层代码方法定义Interface方法实现xml测试 3. 增删改查增:删改查 二. 开发规范(mysql)三. 其他查询操作1. 多表查询2. #{} 和 ${}(面试题)使用区别 排序功能like查询 三. 数据库连接池 一. MyBatis XML配置…...
[产品管理-33]:实验室技术与商业化产品的距离,实验室技术在商业化过程中要越过多少道“坎”?
目录 一、实验室技术 1.1 实验室研究性技术 1.2 技术发展的S曲线 技术发展S曲线的主要阶段和特点 技术发展S曲线的意义和应用 二、实验室技术商业化的路径 2.1 实验室技术与商业化产品的距离 1、技术成熟度与稳定性 - 技术自身 2、市场需求与适应性 - 技术是满足需求 …...
【有啥问啥】 Self-Play技术:强化学习中的自我进化之道
Self-Play技术:强化学习中的自我进化之道 在人工智能的快速发展中,强化学习(Reinforcement Learning, RL)已成为推动智能体自主学习与优化的关键力量。Self-Play技术,作为强化学习领域的一项前沿创新,通过…...
LCR 008. 长度最小的子数组
文章目录 1.题目2.思路3.代码 1.题目 LCR 008. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件…...
uniApp 解决uniapp三方地图获取位置接口的请求次数限制问题,分别提供 Android 和 iOS 的实现方法(原生插件获取)
以下是使用 UniApp 编写获取位置信息的原生插件步骤,这里分别提供 Android 和 iOS 的实现方法。 一、Android 端实现 创建原生插件模块 在 UniApp 项目目录下创建一个目录,比如 nativeplugins/android/locationPlugin。使用 Android Studio 创建一个 An…...
Zabbix Agent 监控 MySQL 进程状态
1. 使用 Zabbix Agent 监控 MySQL 进程状态 这是最简单的方式,通过 Zabbix Agent 监控 MySQL 进程是否在运行。具体步骤如下: 步骤1: 确认 MySQL 进程的名称 在你的 CentOS 服务器上,运行以下命令来确认 MySQL 进程的名称: ps aux | grep mysql通常,MySQL 服务的进程名…...
【模型】感知器
感知器是最早的人工神经网络之一,也是现代深度学习的基础之一。 1. 感知器(Perceptron) 1.1 定义与功能 感知器是一种线性二分类模型,旨在模拟生物神经元的基本功能。它通过对输入特征进行加权求和,并应用激活函数来…...
HtmlCss 基础总结(基础好了才是最能打的)五
Html&Css 基础学习回顾总结 Html&Css 基础总结(基础好了才是最能打的)一 Html&Css 基础总结(基础好了才是最能打的)二 Html&Css 基础总结(基础好了才是最能打的)三 Html&Css 基础总结…...
图神经网络实战——分层自注意力网络
图神经网络实战——分层自注意力网络 0. 前言1. 分层自注意力网络1.1 模型架构1.2 节点级注意力1.3 语义级注意力1.4 预测模块 2. 构建分层自注意力网络相关链接 0. 前言 在异构图数据集上,异构图注意力网络的测试准确率为 78.39%,比之同构版本有了较大…...
基于深度学习的数字识别系统的设计与实现(python、yolov、PyQt5)
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...
ChatGPT 提取文档内容,高效制作PPT、论文
随着人工智能生成内容(AIGC)的快速发展,利用先进的技术工具如 ChatGPT 的 RAG(Retrieval-Augmented Generation,检索增强生成)模式,可以显著提升文档内容提取和内容创作的效率。以下将详细介绍如…...
OpCore Simplify:智能高效的OpenCore EFI配置工具技术指南
OpCore Simplify:智能高效的OpenCore EFI配置工具技术指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify是一款专为简化…...
Petalinux实战:从零构建嵌入式Linux系统的boot与kernel镜像
1. Petalinux环境配置与工程创建 第一次接触Petalinux时,我被它强大的功能震撼到了。这个由Xilinx推出的嵌入式Linux开发工具链,能够帮我们快速构建从bootloader到kernel的完整系统镜像。不过在实际操作中,我发现环境配置这一步特别关键&…...
终极指南:如何用Python脚本5分钟获取百度网盘真实下载链接
终极指南:如何用Python脚本5分钟获取百度网盘真实下载链接 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾经为百度网盘的下载速度而烦恼?每次…...
新手零基础入门:跟着快马生成的互动教程完成jdk17下载安装与第一个程序
作为一名Java初学者,第一次接触JDK安装可能会觉得有些迷茫。最近我在InsCode(快马)平台上尝试了一个JDK17安装教程项目,整个过程比我预想的要简单很多。下面就把我的学习笔记分享给大家,希望能帮助到同样刚入门的朋友。 JDK17下载步骤 首先需…...
统信UOS安装踩坑实录:Win7老用户用balenaEtcher制作启动盘的那些事儿
统信UOS安装实战:Win7环境下避坑指南与工具选择 作为一个长期使用Windows 7的老用户,最近尝试安装统信UOS操作系统时,遇到了不少意料之外的挑战。特别是在制作启动盘这个看似简单的环节,各种问题接踵而至——U盘无法识别、烧录后启…...
破解金融分析复杂性:TradingAgents-CN多智能体协作框架的实战价值与落地指南
破解金融分析复杂性:TradingAgents-CN多智能体协作框架的实战价值与落地指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 价值定位…...
车载相机升级指南:美信MAX9295/96717串行器搭配MAX96712解串器调试MIPI相机实录
车载相机升级指南:美信MAX9295/96717串行器搭配MAX96712解串器调试MIPI相机实录 随着智能驾驶系统对图像识别精度要求的提升,8M像素车载相机正逐步成为行业标配。这次我们团队在升级某高端车型环视系统时,就遇到了从传统2M相机切换到8M MIPI…...
RevokeMsgPatcher深度解析:二进制补丁技术如何永久保存即时通讯消息
RevokeMsgPatcher深度解析:二进制补丁技术如何永久保存即时通讯消息 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https…...
PROJECT MOGFACE模型压缩实践:在有限显存下运行大型语言模型
PROJECT MOGFACE模型压缩实践:在有限显存下运行大型语言模型 你是不是也遇到过这种情况?好不容易找到一个功能强大的AI模型,比如最近挺火的PROJECT MOGFACE,结果一运行,电脑就提示显存不足。看着那动辄需要几十GB显存…...
OBS Multi RTMP插件:终极多平台直播同步推流解决方案
OBS Multi RTMP插件:终极多平台直播同步推流解决方案 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 在当今直播行业快速发展的时代,如何同时在多个平台进行高效…...
