设计模式——责任链模式

什么是责任链?

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

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

例如:

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处理 
相关推荐
J***51689 分钟前
SpringSecurity的配置
java
面汤放盐11 分钟前
软件架构指南 Software Architecture Guide
java·微服务·devops
tkevinjd11 分钟前
JUC5(线程池)
java·线程池·多线程·juc
Tao____12 分钟前
如何对接Modbus-tcp协议(使用Thinlinks物联网平台)
java·物联网·网络协议·tcp/ip·modbus
鱼跃鹰飞16 分钟前
经典面试题:K8S的自动缩扩容和崩溃恢复
java·容器·kubernetes
Coder_Boy_21 分钟前
Spring Boot 事务回滚异常 UnexpectedRollbackException 详解(常见问题集合)
java·spring boot·后端
青云交22 分钟前
Java 大视界 -- 基于 Java+Redis Cluster 构建分布式缓存系统:实战与一致性保障(444)
java·redis·缓存·缓存穿透·分布式缓存·一致性保障·java+redis clus
不知疲倦的仄仄23 分钟前
第五天:深度解密 Netty ByteBuf:高性能 IO 的基石
java·开源·github
xiaobaishuoAI26 分钟前
后端工程化实战指南:从规范到自动化,打造高效协作体系
java·大数据·运维·人工智能·maven·devops·geo
期待のcode29 分钟前
TransactionManager
java·开发语言·spring boot