当前位置: 首页 > 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 值越小,优先级越高

相关文章:

  • 专业做网站服务商百度百家官网入口
  • 月光博客 网站模板抖音搜索seo软件
  • 服装网站建设论文常见的营销型网站
  • 制作网页csdnseo外包方法
  • 嘉瑞建设有限公司网站微博上如何做网站推广
  • 合肥有哪些公司是做网站的如何自己做网页
  • Nuttx之mm_realloc
  • MPMA:Preference Manipulation Attack Against Model Context Protocol
  • Java学习笔记之:Vue中路由的基本使用
  • OpenCV 多边形绘制与填充
  • 【鸿蒙开发】组件动态创建
  • CKA考试知识点分享(11)---CRD
  • 在 Vue 3 中修改 el-select 组件接收的 prop 值
  • reactor模型
  • vue下的xlsx文件导出和导入的写法
  • java(JDBC)
  • [Blender] 高质量材质推荐第四弹:25-30号精选纹理资源详解
  • [MSPM0开发]MSPM0G3507之GPIO输入、输出、中断使用(基于driverlib库)
  • 销售预测的方法与模型(二)丨商品与库存分类——基于数据模型运营的本质和底层逻辑销售
  • 机器学习算法——朴素贝叶斯和特征降维
  • 名称 深度学习(监督学习) Iteration 一次 mini-batch 前向+反向传播更新 Epoch 所有数据集训练一遍。这两个概念不一样吗?
  • 图像分割技术:像素级的精准识别(superior哥深度学习系列第12期)
  • Vue3项目与桌面端(C++)通过Websocket 对接接口方案实现
  • GPIO简介(GPIO输出)
  • Metastore 架构示意图和常用 SQL
  • HINet: Half Instance Normalization Network for Image Restoration论文阅读