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

设计模式——责任链

什么是责任链

责任链模式是一种行为型设计模式,将多个对象连接成一条链,并且沿着这条链传递请求,让多个对象都有机会处理这个请求,请求会顺着链传递,直到某个对象处理它为止,

它主要避免了请求发送者和接受者之间的耦合,增强了系统的灵活性和可扩展性。责任链模式的特点:

  1. 解耦请求发送者与接收者:请求发送者无需知道请求是由哪个处理器处理的。
  2. 动态组合处理器:可以灵活地动态改变链的结构,
  3. 请求沿链传递:请求可以由链中的一个或多个处理器处理,

一般用在什么场景?

  1. 请求需要多个处理器:例如日志记录的不同级别处理。
  2. 动态指定处理流程:请求的处理方式不固定,依赖于运行时的链条结构。
  3. 消除条件分支:用责任链代替代码中的 if-else 或 switch-case 语句。

实战

则会使一个初始化 AI 客户端代码

/*** 初始化 AI 客户端* @param dashscopeChatModel*/public LoveApp(ChatModel dashscopeChatModel) {// 初始化基于内存的对话记忆ChatMemory chatMemory = new InMemoryChatMemory();chatClient = ChatClient.builder(dashscopeChatModel).defaultSystem(SYSTEM_PROMPT).defaultAdvisors(new MessageChatMemoryAdvisor(chatMemory),//自定义日志 Advisornew MyLoggerAdvisor()// 自定义推理增强 Advisor,可按需开启//new ReReadingAdvisor()).build();}

它用的就是责任链模式,核心就是:

  • 将多个 Advisor(类似处理节点)串联成一条链,依次传递请求,直到链末尾结束。
  • 每个节点都可以:做前置处理(拦截、修改请求)、做后置处理(拦截、修改响应)
  • 责任链的“节点”:Advisor 的调用顺序由 getOrder方法设置,order 值越小,优先级越高
http://www.xdnf.cn/news/1000729.html

相关文章:

  • 一种TFTransforme扩散模型时间序列预测模型, pytorch架构
  • 武汉科技大学人工智能与演化计算实验室许志伟课题组参加IEEE CEC 2025
  • elasticSearch是什么,如何使用,有什么用
  • 思科交换机-路由器-配置命令-详细总结
  • ⚽ 实时赛事数据怎么接?WebSocket vs REST 接口详解!
  • 多模态大语言模型arxiv论文略读(118)
  • 0612_正则表达式
  • 确认连接的是 Redis 主节点(master),使用 SLAVEOF NO ONE 切换
  • UE5 免费且好用的插件收集(不定期更新)
  • 社交机器人具身导航新范式!AutoSpatial:通过高效空间推理学习实现机器人视觉语言推理和社交导航
  • 告别无效买量!Data+AI赋能游戏增长
  • Qt中的OpenGL (4)[纹理]
  • 用Rust如何构建高性能爬虫
  • 紫光展锐完成优化升级,支持Android 16,以科技创新共赴智能体验新篇章
  • pytorch 之 nn 库与调试
  • 知识变现新范式:创客匠人如何重构中医行业商业逻辑
  • 从监测滞后到全域智控:河湖智慧化管理方案
  • PCB设计教程【大师篇】stm32开发板PCB模块化布局
  • Java八股文——MySQL「存储引擎篇」
  • Python+TensorFlow:30分钟快速入门AI开发
  • Lesson 27 A wet night
  • 常见Modbus协议面试问题
  • 基于Springboot+UniApp+Ai实现模拟面试小工具一:系统需求分析及设计
  • 一步一步学python之(5)基本语法
  • 科技文明的奇妙锻造之旅
  • CentOS7下MySQL8.0的安装到基本操作
  • 【机器学习】PCA
  • uniapp开发的app和原生的app开发各有什么优缺点
  • 新能源汽车诊断协议深度解析:从J1939到AUTOSAR的实战指南
  • WordToCard制作高考志愿填报攻略小卡片【豆包版】