职责链模式 (Chain of Responsibility Pattern)
1、类图
2、代码
public class Main { public static void main(String[] args) { Handler mr1 = new Instructor(); Handler mr2 = new Headmaster(); Handler mr3 = new Student(); mr1.setNextHandler(mr2); mr2.setNextHandler(mr3); // 输出:request:instructor-headmaster-student mr1.handleRequest("request:"); } } /* 抽象处理者 */ abstract class Handler { protected Handler nextHandler = null; public void setNextHandler(Handler nextHandler) { this.nextHandler = nextHandler; } public abstract void handleRequest(String request); } /* 具体处理者1 */ class Instructor extends Handler { @Override public void handleRequest(String request) { this.nextHandler.handleRequest(request + "instructor-"); } } /* 具体处理者2 */ class Headmaster extends Handler { @Override public void handleRequest(String request) { this.nextHandler.handleRequest(request + "headmaster-"); } } /* 具体处理者3 */ class Student extends Handler { @Override public void handleRequest(String request) { System.out.println(request + "student"); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了