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);         
    }
}
相关推荐
Remember_99320 小时前
Java 单例模式深度解析:设计原理、实现范式与企业级应用场景
java·开发语言·javascript·单例模式·ecmascript
urkay-20 小时前
Android 中实现 HMAC-SHA256
android·开发语言·python
代码or搬砖20 小时前
ReentranLock中AQS讲解
java·开发语言·redis
rainbow688920 小时前
C++智能指针实战:从入门到精通
java·开发语言
HalvmånEver20 小时前
Linux:进程 vs 线程:资源共享与独占全解析(线程四)
java·linux·运维
qq_124987075320 小时前
基于springboot的竞赛团队组建与管理系统的设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·信息可视化·毕业设计·计算机毕业设计
瑞雪兆丰年兮20 小时前
[从0开始学Java|第五天]Java循环高级综合练习
java·开发语言
清铎20 小时前
项目_Agent实战
开发语言·人工智能·深度学习·算法·机器学习
BoJerry77720 小时前
数据结构——单链表(不带头)【C】
c语言·开发语言·数据结构
J_liaty20 小时前
SpringBoot 自定义注解实现接口加解密:一套完整的多算法方案
java·spring boot·算法