设计模式-行为型模式-责任链模式

devtools/2024/9/25 11:12:52/

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

java">/*** 责任链模式* 类型:行为型* 描述:使用多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。*/
public class ConcreteMode {// 具体处理者static class ConcreteHandler extends Handler {public ConcreteHandler(String name){super(name);}public void handleRequest(Request request){System.out.println(this.name + "处理了:" + request.getName());}}// 请求static class Request {private String name;public Request(String name){this.name = name;}public String getName(){return name;}}// 处理者static abstract class Handler {private Handler nextHandler;String name;public Handler(String name){this.name = name;}public void setNextHandler(Handler nextHandler){this.nextHandler = nextHandler;}public void handleRequest(Request request){if (this.nextHandler != null){this.nextHandler.handleRequest(request);}}}// 客户端public static void main(String[] args){// 创建请求Request request = new Request("小明");// 创建处理者Handler handler1 = new ConcreteHandler("张三");Handler handler2 = new ConcreteHandler("李四");Handler handler3 = new ConcreteHandler("王五");// 设置处理者链handler1.setNextHandler(handler2);handler2.setNextHandler(handler3);// 处理请求handler1.handleRequest(request);}
}


http://www.ppmy.cn/devtools/21631.html

相关文章

Spring基础

一、Spring概述 1、Spring框架 Spring就是一个java框架,使用java语言开发,轻量级的开源框架,可以在j2se,j2ee都可使用。 Spring核心技术:IOC,AOP,核心是控制反转(IOC)和面向切面编程(AOP) S…

k8s pod 无法启动一直ContainerCreating

情况如下,更新 pod 时,一直在ContainerCreating 查看详细信息如下 Failed to create pod sandbox: rpc error: code Unknown desc [failed to set up sandbox container “334d991a478b9640c66c67b46305122d7f0eefc98b2b4e671301f1981d9b9bc6” networ…

Qt 把.exe打包成安装文件形式

目录 1.下载工具 Qt Installer Framework2.将bin文件添加到环境变量3.拷贝startmenu示例-备用4.准备Qt Release打包好的程序5.把Release打包好的程序放到packages\org.qtproject.ifw.example\data文件夹下6.生成安装包7.修改安装包图标8.修改主程序程序安装引导-创建快捷键9.添…

【随想录】Day32—第八章 贪心算法 part02

目录 题目1: 买卖股票的最佳时机 II1- 思路2- 题解⭐买卖股票的最佳时机 II ——题解思路 题目2: 55. 跳跃游戏1- 思路2- 题解⭐跳跃游戏 ——题解思路 题目3: 45. 跳跃游戏 II1- 思路2- 题解⭐跳跃游戏 II ——题解思路 题目1: 买卖股票的最佳时机 II 题目链接:12…

ShaderLab的混合命令

文章目录 示例原理混合因子混合操作参考 示例 Pass {Tags{"LightMode" "ForwardBase"}// 关闭深度写入ZWrite Off// 设置Pass的混合模式,SrcAlpha: 片元着色器产生的颜色的混合因子// OneMinusSrcAlpha 已经存在于颜色缓冲中的颜色的混合因子…

面试算法十问(中英文)

1.两数之和 (Two Sum) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。 Given an array of integers nums and a target value target, find the two integers in the array that sum up t…

汇编语言-[bx]和loop指令

[bx]指令: [bx] 和 [0] 有些类似,[0] 表示内存单元,它的偏移地址是 0 比如: mov ax,[0] 将一个内存单元的内容送入 ax ,这个内存单元的长度为 2字节(字单元), 存放一个字节&…

ubuntu没有fcitx输入法图标

前言 Ubuntu20.04,卸载了ibus输入法,安装的fcitx搜狗输入法,出现无法切换到英文输入下,进行了重新启动,发现输入法图标不见了 可以尝试手动启动fcitx: 打开终端,运行以下命令: f…