java设计模式---采用Pipeline处理器流水线实现责任链模式

简介:
Pipeline是一条Netty管道流水线,一条管道需要很多Handler处理器来处理业务。Netty的业务处理器流水线ChannelPipeline是基于责任链设计模式(Chain of Responsibility)来设计的,内部是一个双向链表结构,能够支持动态地添加和删除Handler业务处理器。
模拟一下netty将Handler业务处理器加入到Pipeline流水线中,Context里包含流通的对象数据,
形成一个从头到尾的链式结构,只不过我实现的是单向,如下图

java设计模式---采用Pipeline处理器流水线实现责任链模式_第1张图片

一、什么是责任链模式

责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。
责任链模式通过将多个处理器(处理对象)以链式结构连接起来,使得请求沿着这条链传递,直到有一个处理器处理该请求为止。
责任链模式允许多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。

二、责任链的结构

主要涉及到以下几个核心角色:
  • 抽象处理者(Handler):
    • 定义一个处理请求的接口,通常包含一个处理请求的方法(如 handleRequest)和一个指向下一个处理者的引用(后继者)。
  • 具体处理者(ConcreteHandler):
    • 实现了抽象处理者接口,负责处理请求。如果能够处理该请求,则直接处理;否则,将请求传递给下一个处理者。
  • 客户端(Client):
    • 创建处理者对象

你可能感兴趣的:(设计模式,责任链模式)