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

设计模式——责任链模式

什么是责任链?
责任链简单来说就是一种设计模式,它允许将请求沿着一个处理链传递,直到链中的某个对象处理它。这样,发送者无需知道哪个对象将处理请求,所有的处理对象都可以尝试处理请求或将请求传递给链上的下一个对象。

举生活中的例子,当我们需要请假时,我们把请假条交给项目经理,假如是一个短时间的请假,项目经理就可以处理我们的请求,如果是长时间请假,那么会将我们的请求进一步传递给副经理,副经理如果觉得自己也处理不了,就再次传递给总经理。

例如:

public class Main {public static void main(String[] args) { Handler leader = new Leader();Handler boss = new Boss();leader.setNextHandler(boss);leader.process(7);    }}abstract class Handler{    public Handler nextHandler;    public void setNextHandler(Handler nextHandler) {        this.nextHandler = nextHandler;}    public abstract void process(Integer info);}class Leader extends Handler{@Override    public void process(Integer info) {        if (info>0 && info<5)System.out.println("leader 处理....");else            nextHandler.process(info);}}class Boss extends Handler{@Override    public void process(Integer info) {System.out.println("Boss 处理...");    }}
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cebad8e90c5d4f2bb5fad231d6a74570.png)将处理请求数字7交给leader处理,但是它处理不了,继续交给Boss处理 
http://www.dtcms.com/a/292332.html

相关文章:

  • 建造者设计模式
  • Qt布局管理:实现美观界面的关键
  • 2025 年最新 AI 技术:全景洞察与深度解析​
  • 从 0 到 1 搞定nvidia 独显推流:硬件视频编码环境安装完整学习笔记
  • Arraylist与LinkedList区别
  • 使用react编写一个简单的井字棋游戏
  • ZLMediaKit 入门
  • 第12天 | openGauss逻辑结构:模式管理
  • Java 大视界 -- Java 大数据在智能医疗医疗设备维护与管理中的应用(358)
  • 25. K 个一组翻转链表
  • Odoo:免费开源的金属制品行业ERP管理软件
  • React 面试题库
  • 写个 flask todo app,简洁,实用
  • calibrate_hand_eye (CalibDataID, Errors)
  • 2025年远程桌面软件深度评测:ToDesk、向日葵、TeamViewer全方位对比分析
  • C++学习——内联、C++11中的auto、for循环、nullptr
  • Windows Cmake Vs2017/2010 编译安装Protobuf
  • 【计算机网络】第五章:传输层
  • 双向链表详解及实现
  • 解锁高品质音频体验:探索音频质量评估与测试的科学之道
  • Vibe Coding:人工智能 + 语音 = 新型开发者工作流
  • Thingsboard是什么?跟LoRaWAN 是什么关系?
  • 图像基础:从像素到 OpenCV 的入门指南
  • 【加解密与C】Rot系列(四)RotSpecial
  • 【windows修复】解决windows10,没有【相机] 功能问题
  • 2025易支付插件/度小满/拉卡拉缴费易/嘉联/海科码钱/富友 支付量身定制的易支付插件优化方案
  • Jupyter Notebook |使用清华源下载安装
  • Final_基于时序数据的回归预测
  • ABP VNext + FluentMigrator:数据库迁移管理
  • AI智能体“上下文工程”实践:来自 Manus 项目的经验总结