责任链模式-java

news/2025/3/29 2:55:40/

1、spring依赖注入模式

@Configuration
public class ChainConfig {@Beanpublic ChainSpringFactory chainSpringFactory(List<IHandler<DemoOne,Boolean>> handlerList){return new ChainSpringFactory(handlerList);}}

public class DemoOne {
}

public abstract class IHandler<T,R> {public IHandler<T,R> nextHandler;public void setNextHandler(IHandler<T,R> nextHandler) {this.nextHandler = nextHandler;}public boolean hasNext() {return this.nextHandler != null;}/*** 处理责任链逻辑, 执行下个环节*/public R handle(T t){if(hasNext()){return nextHandler.handle(t);}return  null;};}
public class ChainSpringFactory <T,R> {private IHandler<T,R> first;/*** 存放系统中责任链具体处理类* @param handlerList*/public  ChainSpringFactory(List<IHandler<T,R>> handlerList) {Assert.notEmpty(handlerList,"无责任实现bean");for (int i = 0; i < handlerList.size()-1; i++) {handlerList.get(i).setNextHandler(handlerList.get(i+1));}first=handlerList.get(0);}/*** 执行具体业务场景中的责任链集合*/public R executeHandle(T productDto) {return first.handle(productDto);}
}

</


http://www.ppmy.cn/news/1583274.html

相关文章

Node.js 包与 npm 详解:使用 npm 的重要注意事项与最佳实践

目录 Node.js 包与 npm&#xff1a;使用 npm 的其它注意点详解 1. package.json 与 package-lock.json 的作用 什么是 package.json&#xff1f; 什么是 package-lock.json&#xff1f; 示例&#xff1a;package-lock.json 片段 2. 语义化版本&#xff08;SemVer&#xf…

从零到一开发一款 DeepSeek 聊天机器人

AI聊天机器人 目标设计方案系统架构技术选型功能模块 实现代码环境配置安装依赖 核心代码API 请求函数主循环函数 功能扩展1. 情感分析2. 多语言支持3. 上下文记忆4. 用户身份识别 总结附录 目标 开发一个智能聊天机器人&#xff0c;旨在为用户提供自然、流畅的对话体验。通过…

Dubbo(9)什么是RPC?Dubbo如何实现RPC?

什么是RPC&#xff1f; RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种通过网络从远程计算机程序上请求服务&#xff0c;而不需要了解底层网络细节的通信方式。RPC使得程序可以像调用本地方法一样调用远程服务&#xff0c;隐藏了网络通信的…

深入理解 HTML5 Web Workers:提升网页性能的关键技术解析

深入理解 HTML5 Web Workers&#xff1a;提升网页性能的关键技术解析 引言1. 什么是 Web Workers&#xff1f;Web Workers 的特点&#xff1a; 2. Web Workers 的使用方式2.1 创建一个 Web Worker步骤 1&#xff1a;创建 Worker 文件步骤 2&#xff1a;在主线程中调用 Worker 3…

深入理解JavaScript中的同步和异步编程模型及应用场景

前言 随着互联网的发展&#xff0c;JavaScript作为前端开发的主要语言&#xff0c;也不断地发展和完善。在JavaScript中&#xff0c;同步代码和异步代码是两个非常重要的概念&#xff0c;也是开发过程中需要了解的基础知识。本文将对JavaScript中的同步代码和异步代码进行详细…

Elasticsearch 倒排索引 和 正排索引

一、倒排索引 倒排索引是 Elasticsearch 实现高效全文搜索的核心技术。它通过将词项与文档 ID 关联&#xff0c;支持快速检索、短语查询、布尔查询和相关性评分。尽管倒排索引在存储和更新方面有一定的开销&#xff0c;但通过词典优化、倒排列表压缩、分片和缓存等技术&#x…

Harbor镜像仓库迁移与高可用集群搭建HTTPS实现实战指南

实验环境 Ubuntu22.04操作系统 registry节点 10.0.0.91 master节点 10.0.0.92 backup节点 10.0.0.93 在企业信息化建设的不同演进阶段&#xff0c;私有镜像仓库的选型策略存在显著差异。近期主导完成某企业级容器镜像仓库升级项目&#xff0c;成功实现Docker Registry至Ha…

【算法】动态规划:回文子串问题、两个数组的dp

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 回文子串问题回文子串最长回文子串分割回文串 IV分割回文串 II *最长回文子序列让字符串成为回文串的最少插入次数 两个数组的dp最…