您的位置:首页 > 财经 > 金融 > 制作相册软件_泉州正规制作网站公司_2024近期新闻_app开发公司有哪些

制作相册软件_泉州正规制作网站公司_2024近期新闻_app开发公司有哪些

2025/4/3 9:41:49 来源:https://blog.csdn.net/cgq_cgq/article/details/146534865  浏览:    关键词:制作相册软件_泉州正规制作网站公司_2024近期新闻_app开发公司有哪些
制作相册软件_泉州正规制作网站公司_2024近期新闻_app开发公司有哪些

责任链模式属于行为型设计模式,核心思想是将请求的发送者与接收者进行解耦,构建一条由多个处理对象组成的链式结构。每个处理者决定是否能够处理该对象,否则将其传递给下一个节点进行处理。发送者不知道并不知道由谁来处理

使用场景

  • 当有多个对象可以处理请求,有对象自行决定是否处理
  • 工作流引擎:请假流程、报销流程等
  • 过滤器模式:对请求或者数据进行过滤
  • 权限设计:对用户角色的验证

核心组件

  • 抽象处理者:Handler
    • 定义了处理请求的接口,并维护下一个处理对象的引用
    • setNext():下一节点
    • handleRequest():处理请求
public interface Handler{void setNext(Handler next);void handleRequest(Object obj);
}
  • 具体处理者:Concrete Handler
    • 实现抽象接口,定义具体的处理逻辑
    • 当前对象无法处理则交由下一级进行处理
public class ConcreteHandler implements Handler{private Handler next@Overridepublic void setNext(Handler next){this.next= next;}@Overridepublic void handleRequest(Object obj) {if (validate(obj)) {System.out.println("参数校验通过");if (next != null) next.handleRequest(obj);} else {System.out.println("参数不合法,终止流程");}}private boolean validate(Object obj) {//具体校验逻辑}
}
  • 客户端:Client
    • 负责将所有的处理对象组装成处理链,客户端无需知晓链的具体结构,只要将请求发送给责任链的第一个处理者即可。

类图

image

  • Handler:抽象类
  • FirstHandler:实现类
  • HandlerClient:客户端类
//抽象类
public interface Handler {  //下一个处理节点  void setNext(Handler next);  void handleRequest(Object obj);  
}//实现类
public class FirstHandler implements Handler{  private Handler next;  @Override  public void setNext(Handler next) {  this.next = next;  }  @Override  public void handleRequest(Object obj) {  if (validate(obj)) {  System.out.println("参数校验通过");  if (next != null) next.handleRequest(obj);  } else {  System.out.println("参数不合法,终止流程");  }  }  private boolean validate(Object obj) {  return Objects.nonNull(obj);  }  
}//客户端类public class HandlerClient {  public static void main(String[] args) {  Handler first = new FirstHandler();  Handler second = new SecondHandler();  Handler third = new ThirdHandler();  first.setNext(second);  second.setNext(third);  Object object = new Object();  first.handleRequest(object);  }  }

模式的优缺点

优点

  • 解耦请求发送者和接受者
  • 能够动态调整链结构,运行过程中添加或者移除节点
  • 支持多层级处理,例如对请求编码、鉴权、限流

缺点

  • 请求可能不满足所有节点,需要单独处理
  • 链结构过长影响性能

总结

使用责任链模型将复杂的处理逻辑拆分为独立的单元,可以动态的进行增删,提高了系统的灵活性和可维护性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com