java之责任链模式

一、简介

责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象有机会处理一个请求。请求沿着处理者链传递,直到某个处理者决定处理此请求。

二、技术实现

2.1 Handler
java 复制代码
public interface Handler{
    void handle(Request req, Response resp, Chain chain);
}
2.2 Chain
java 复制代码
public class Chain{
   
    private List<Handler> handlers;
    
    private int index;

    public Chain(List<Handler> handlers){

         this.handlers = handlers;

    }

   
    public void next(Request req, Response resp){
        
        if (index + 1 < handlers.size()){

            handlers.get(index++).handle(req, resp, this);
         
        }

    }
}
2.3 Handler 实现
java 复制代码
public LogHandler implements Handler{

    @Override
    public void Handle (Request req, Response resp, Chain chain){
        long start = System.currentTimeStamps();
        chain.next(req,resp);
        log.info("request:{},response:{}, duration:{}",req, resp, System.currentTimeStamps() - start);         
    }
}
相关推荐
2501_916766542 分钟前
【Spring框架】SpringJDBC
java·后端·spring
谷哥的小弟8 分钟前
Spring Framework源码解析——ApplicationContextInitializer
java·spring·源码
羸弱的穷酸书生9 分钟前
国网 i1协议 python实现
开发语言·python
电子硬件笔记10 分钟前
Python语言编程导论第三章 编写程序
开发语言·python·编辑器
布谷歌11 分钟前
在java中实现c#的int.TryParse方法
java·开发语言·python·c#
cooldream200915 分钟前
当代 C++ 的三大技术支柱:资源管理、泛型编程与模块化体系的成熟演进
开发语言·c++
while(1){yan}22 分钟前
网络基础知识
java·网络·青少年编程·面试·电脑常识
Ulana26 分钟前
计算机基础10大高频考题解析
java·人工智能·算法
洲星河ZXH32 分钟前
Java,集合框架体系
开发语言·windows
黄俊懿33 分钟前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——@GlobalTransactional注解与@globalLock生效的原理
java·spring cloud·微服务·云原生·架构·系统架构·架构师