责任链设计模式
一.意图
职责链模式(Chain Of Responsibility) 是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
二.场景
处理流程可以经过多个流程,形成一条链路。
三.优缺点
1.解耦:发送者和接收者解耦
2.简化处理,请求者无需关注处理的的细节和传递,只需要将自己的请求发送到链路上面即可
3.增加程序的灵活性,允许动态新增或者删除责任
四.代码
public class ChainRespPattern { public static void main(String[] args) { Handler level1 = new Leader(); Handler level2 = new Boss(); level1.setNextHandler(level2);//指定责任链 leader->boss level1.process(10);//leader处理 level1.process(12);//boss处理 } }
//责任链模版接口 public abstract class Handler { protected Handler nextHandler; public void setNextHandler(Handler nextHandler){ this.nextHandler = nextHandler; } public abstract void process(Integer info); } //leader class Leader extends Handler{ @Override public void process(Integer info){ if(info>0 && info <11){ System.out.println("leader审批"); }else{ nextHandler.process(info); } } } //boss class Boss extends Handler{ @Override public void process(Integer info){ System.out.println("boss审批"); } }
引用
https://dunwu.github.io/design/pages/b25735/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)