首页 > 其他分享 >责任链模式

责任链模式

时间:2023-12-18 14:57:43浏览次数:17  
标签:请求 处理 request 模式 责任 Handler handleRequest public

责任链模式为请求创建一个接收该 请求对象的 链 , 链条中每个元素都是一个对象 。

责任链模式有两个角色,一个是请求,一个是处理者构成的责任链,当前处理者无法处理请求时,将请求交给下一个责任者。

使用场景如OA 中审批流程 , 需要 组长 , 经理 , 总监 审批请求 ,账号注册时进行校验 , 先后校验 账号 , 密码 , 手机号 等。

 

示例代码

package chainOfResponsibility;
public class ChainOfResponsibilityPattern {
public static void main(String[] args) {
//组装责任链
Handler handler1=new ConcreteHandler1();
Handler handler2=new ConcreteHandler2();
handler1.setNext(handler2);
//提交请求
handler1.handleRequest("two");
}
}
//抽象处理者角色
abstract class Handler {
private Handler next;  // 用来设置下一个处理者
public void setNext(Handler next) {
this.next=next;
}
public Handler getNext() {
return next;
}
//处理请求的方法
public abstract void handleRequest(String request);
}
//具体处理者角色1
class ConcreteHandler1 extends Handler {
public void handleRequest(String request) {
if(request.equals("one")) {
System.out.println("具体处理者1负责处理该请求!");
}
else {
if(getNext()!=null) {
getNext().handleRequest(request);
}
else {
System.out.println("没有人处理该请求!");
}
}
}
}
//具体处理者角色2
class ConcreteHandler2 extends Handler {
public void handleRequest(String request) {
if(request.equals("two")) {
System.out.println("具体处理者2负责处理该请求!");
}
else {
if(getNext()!=null) {
getNext().handleRequest(request);
}
else {
System.out.println("没有人处理该请求!");
}
}
}
}

标签:请求,处理,request,模式,责任,Handler,handleRequest,public
From: https://www.cnblogs.com/seeksimple/p/17911201.html

相关文章

  • 架构模式,设计模式,代码模式
    架构模式,架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质,架构模式的好坏可以影响到总体布局和框架性结构设计模式,是中等尺度的结构策略,这些中等尺度的结构实现了一些大尺度组件的行为和它们之前的关系。设计模式的好坏不会影响到系统总体布局和总体框架。设计......
  • Java设计模式之七大设计原则
    七大设计原则设计原则概述单一职责原则定义一个类仅有一个引起它变化的原因分析模拟场景访客用户普通用户VIP用户代码实现/***视频用户接口*/publicinterfaceIVideoUserService{​  voiddefinition();​  voidadvertisement();}​/***......
  • 亚马逊鲲鹏系统两种养号模式助你快速养成买家号
    亚马逊鲲鹏系统的养号模式多种多样,一种是智能AI一键养号,另一种是根据个人操作习惯进行设置的养号模式。这两种方式各有特色,为用户提供了更加灵活和个性化的选择。首先,AI智能一键养号模式是一项引人注目的创新。用户只需简单设置一些基本信息,如AI姓名、年龄、性别、职业以及爱好等,系......
  • 设计模式
    一.参考网址1. 设计模式2. 23种设计模式实战!超级全,超级好懂!......
  • 优雅的程序设计:掌握门面模式的奥秘
    前言在软件开发中,设计模式扮演着至关重要的角色,而门面模式则是其中的瑰宝。如果你渴望简化复杂的系统、提高代码的可维护性和可扩展性,那么这篇文章是必读之选。它深入剖析了门面模式的核心原理,通过实战案例展示了其在现实场景中的应用。无论你是初学者还是经验丰富的开发者,你都将从......
  • Dart设计模式之桥接模式
    dart设计模式之桥接模式桥接模式(Bridge)模式分析桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这......
  • 策略模式
    [实验任务一]:旅行方式的选择旅游的出行方式有乘坐飞机旅行、乘火车旅行和自行车游,不同的旅游方式有不同的实现过程,客户可以根据自己的需要选择一种合适的旅行方式。1. 提交源代码;2. #include<iostream>3. usingnamespacestd;4. classTravelStrategy{5. public:6. v......
  • 备忘录模式
    备忘录模式,也叫快照模式,它可以在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态,以便在需要的时候恢复到原先保存的状态。常见的场景比如游戏进度日志,VMWare操作系统快照等,以备后续的恢复。备忘录模式有三个角色,一是源发器,二是对源发器状态进行记录的备忘......
  • 仲裁者模式
    仲裁者模式和中介者模式类似,但作用又有不同之处,仲裁者模式是对多个对象的管理协调,而中介者一般是一代一。仲裁者有两个角色,仲裁者和被仲裁者,使用场景比如winform模式,form就是仲裁者,各种控件就是被仲裁者,仲裁者负责协调管理。代码示例packagedesignMode.mediator;publicinter......
  • 设计模式(十七)中介者
    一、定义义一个对象来封装一系列的对象交互。中介者模式使各对象不需要显示地相互引用,从而使其耦合松散,而且可以让你相对独立地改变它们之间的交互。中介者模式又称为调停模式,它是一种对象说行为型模式。二、描述在中介者模式中,引入了用于协调其他对象/类之间的相互调用的中介......