设计模式——责任链模式

什么是责任链?

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

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

例如:

java 复制代码
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处理 
相关推荐
Swift社区11 分钟前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言
DKPT1 小时前
JVM中如何调优新生代和老生代?
java·jvm·笔记·学习·spring
phltxy1 小时前
JVM——Java虚拟机学习
java·jvm·学习
seabirdssss3 小时前
使用Spring Boot DevTools快速重启功能
java·spring boot·后端
喂完待续3 小时前
【序列晋升】29 Spring Cloud Task 微服务架构下的轻量级任务调度框架
java·spring·spring cloud·云原生·架构·big data·序列晋升
benben0443 小时前
ReAct模式解读
java·ai
烛阴3 小时前
【TS 设计模式完全指南】从“入门”到“劝退”,彻底搞懂单例模式
javascript·设计模式·typescript
轮到我狗叫了3 小时前
牛客.小红的子串牛客.kotori和抽卡牛客.循环汉诺塔牛客.ruby和薯条
java·开发语言·算法
Volunteer Technology5 小时前
三高项目-缓存设计
java·spring·缓存·高并发·高可用·高数据量