developS

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

责任链设计模式

一.意图

职责链模式(Chain Of Responsibility) 是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。

使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

二.场景

处理流程可以经过多个流程,形成一条链路。
三.优缺点

1.解耦:发送者和接收者解耦

2.简化处理,请求者无需关注处理的的细节和传递,只需要将自己的请求发送到链路上面即可

3.增加程序的灵活性,允许动态新增或者删除责任

四.代码

复制代码
public class ChainRespPattern {

    public static void main(String[] args) {
         Handler level1 = new Leader();
         Handler level2 = new Boss();
         level1.setNextHandler(level2);//指定责任链 leader->boss

         level1.process(10);//leader处理
         level1.process(12);//boss处理

    }
}
复制代码
复制代码
//责任链模版接口
public abstract class Handler {

    protected Handler nextHandler;
    public void setNextHandler(Handler nextHandler){
        this.nextHandler = nextHandler;
    }
    public abstract void process(Integer info);
}

//leader
class  Leader extends Handler{

  @Override
  public  void process(Integer info){
      if(info>0  && info <11){
          System.out.println("leader审批");
      }else{
          nextHandler.process(info);
      }
  }
}
//boss
class  Boss extends Handler{

    @Override
    public  void process(Integer info){
        System.out.println("boss审批");
    }
}
复制代码

 

 

 

引用

https://dunwu.github.io/design/pages/b25735/

posted on   四十四次日落95  阅读(7)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示