当前位置: 首页 > news >正文

设计模式学习-责任链模式

概念

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

代码编写
using UnityEngine;
using System.Collections;
public class ChainOfResponsbilityStucture :MonoBehaviour{void Start{Handler h1 = new ConcreteHandler1();Handler h2 = new ConcreteHandler2();Handler h3 = new ConcreteHandler3();//设置自己的 “领导”h1.SetSuccessor(h2);h2.SetSuccessor(h3);//测试int[] requests = { 2, 5, 14, 22, 18, 3, 27, 20 };foreach (int request in requests){h1.HandleRequest(request);}}//声明一个抽象类规范子类的行为abstract class Handler{protected Handler successour;public void SetSuccessour(Handler successour){this.successour= successour;}public void abstract RequestHandler(int request);}public class ConcreteHandler1:Handler{public override void RequestHandler(int request){if(request>=0 &&request < 10){Debug.Log($"交给我处理{this.GetType().Name}handled request {request}");}else if(successour != null){successor.RequestHandler(request);}}}public class ConcreteHandler2:Handler{public override void RequestHandler(int request){if(request>=10 &&request < 20){Debug.Log($"交给我处理{this.GetType().Name}handled request {request}");}else if(successour != null){successor.RequestHandler(request);}}}public class ConcreteHandler3:Handler{public override void RequestHandler(int request){if(request>=20 &&request < 50){Debug.Log($"交给我处理{this.GetType().Name}handled request {request}");}else if(successour != null){successor.RequestHandler(request);}}}
}

主旨就是“你完不成就要找到你上司让他完成,你上次完不成就找上司的上司。。。”

相关文章:

设计模式学习-责任链模式

概念 使多个对象都有机会处理请求&#xff0c;从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有对象处理它为止. 代码编写 using UnityEngine; using System.Collections; public class ChainOfResp…...

【全网最全】2024年数学建模国赛B题31页完整建模过程+成品论文+matlab/python代码等(后续会更新

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取资料的入口&#xff01; 2024数学建模国赛B题 【全网最全】2024年数学建模国赛B题31页完整建模过程成品论文matlab/python代码等&#xff08;后续会更新「首先来看看目前已有的资料…...

第二十一届华为杯数学建模经验分享之资料分享篇

今天给大家分享一些数学建模的资料&#xff0c;通过这些资料的学习相信你们一定在比赛中获得好的成绩。今天分享的资料包括美赛和国赛的优秀论文集、研赛的优秀论文集、推荐数学建模的相关书籍、智能算法的学习PPT、python机器学习的书籍和数学建模经验分享与总结&#xff0c;其…...

使用 OpenSSL 创建自签名证书

mkdir -p /etc/nginx/conf.d/cert #2、创建私钥 openssl genrsa -des3 -out https.key 1024 提示输入字符&#xff1a; 输入字符&#xff1a;rancher [rootocean-app-1a-01 cert]# openssl genrsa -des3 -out https.key 1024 Generating RSA private key, 1024 bit long modulu…...

EmguCV学习笔记 VB.Net 9.1 VideoCapture类

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…...

Rspack 1.0 发布了!

文章来源&#xff5c;Rspack Team 项目地址&#xff5c;https://github.com/web-infra-dev/rspack Rspack 是基于 Rust 编写的下一代 JavaScript 打包工具&#xff0c; 兼容 webpack 的 API 和生态&#xff0c;并提供 10 倍于 webpack 的构建性能。 在 18 个月前&#xff0c;我…...

【全网最全】2024年数学建模国赛E题超详细保奖思路+可视化图表+成品论文+matlab/python代码等(后续会更新

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取资料的入口&#xff01; 【全网最全】2024年数学建模国赛E题成品论文超详细保奖思路可视化图表matlab/python代码等&#xff08;后续会更新「首先来看看目前已有的资料&#xff0c;还…...

数智转型,看JNPF如何成为企业的必备工具

随着数字化转型的浪潮席卷全球&#xff0c;企业面临着前所未有的挑战与机遇。在这一过程中&#xff0c;低代码开发平台作为一种创新的软件开发方式&#xff0c;正逐渐成为企业实现快速迭代和敏捷开发的关键工具。JNPF作为一款领先的低代码开发平台&#xff0c;凭借其强大的功能…...

ArcGIS Pro 发布松散型切片

使用ArcGIS Pro发布松散型切片问题&#xff0c;有时候会出现切片方案写了松散型&#xff0c;但是自动切片完成后依然是紧凑型的问题&#xff0c;这时候可以采用手动修改然后再切片的方式。 1. 发布切片服务 选择手动切片方式 2. 手动修改服务的切片方案文件 修改cache服务…...

奖项再+1!通义灵码智能编码助手通过可信 AI 智能编码工具评估,获当前最高等级

阿里云的通义灵码智能编码助手参与中国信通院组织的可信AI智能编码工具首轮评估&#xff0c;最终获得 4 级评级&#xff0c;成为国内首批通过该项评估并获得当前最高评级的企业之一。 此次评估以《智能化软件工程技术和应用要求 第 2 部分&#xff1a;智能开发能力》为依据&…...

如何使用 yum 在 CentOS 6 上安装 nginx

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 状态 状态&#xff1a; 已弃用 本文涵盖的 CentOS 版本已不再受支持。如果您目前正在运行 CentOS 6 服务器&#xff0c;我们强烈建议升…...

F12抓包05:Network接口测试(抓包篡改请求)

课程大纲 使用线上接口测试网站演示操作&#xff0c;浏览器F12检查工具如何进行简单的接口测试&#xff1a;抓包、复制请求、篡改数据、发送新请求。 测试地址&#xff1a;https://httpbin.org/forms/post ① 抓包&#xff1a;鼠标右键打开“检查”工具&#xff08;F12&#xf…...

OPenCV结构分析与形状描述符(4)计算一个旋转矩形的四个顶点的函数boxPoints()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 找到一个旋转矩形的四个顶点。对于绘制旋转矩形很有用。 该函数找到一个旋转矩形的四个顶点。这个函数对于绘制矩形很有帮助。在C中&#xff0c;…...

【Matplotlib】利用Python进行绘图!(python数据分析与可视化)

文章开始前打个小广告——分享一份Python学习大礼包&#xff08;激活码安装包、Python web开发&#xff0c;Python爬虫&#xff0c;Python数据分析&#xff0c;人工智能、自动化办公等学习教程&#xff09;点击领取&#xff0c;100%免费&#xff01; 【Matplotlib】 教程&…...

第二百二十节 JPA教程 - JPA 实体管理器删除示例

JPA教程 - JPA 实体管理器删除示例 我们可以使用JPA中的EntityManager来删除一个实体。 在下面的代码中&#xff0c;我们首先通过使用EntityManager中的find方法从数据库获取person对象&#xff0c;然后调用remove方法并传递person对象引用。 Person emp em.find(Person.cla…...

[⁠TypeError⁠]‍ {message: “Cannot read property ‘‘ of undefined“}

11:11:25.500 ‍[⁠TypeError⁠]‍ {message: “Cannot read property ‘’ of undefined”} 11:11:25.586 [Vue warn]: Unhandled error during execution of render function \n at \nat \nat \nat \nat \nat \nat <V uniapp 使用报错 解决方法 页面加 v-if 来判断这个字…...

NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001

由于需要对NFI进行汉化,以及二次开发,首先要下载源码以后编辑通过,NIFI的源码,项目非常多,编译过程中需要编译超过570个jar包,同时编译过程很慢需要30多分钟. 1.首先下载NIFI源码,根据需要下载对应版本: https://github.com/kemixkoo/orchsym-runtime/ 首先介绍一下,这个是一…...

项目在运行时,浏览器控制台出现 Uncaught ReferenceError: globalThis is not defined

项目场景&#xff1a; 背景&#xff1a; 项目在运行时&#xff0c;QQ浏览器控制台出现 Uncaught ReferenceError: globalThis is not defined … 错误信息 问题描述 问题&#xff1a; 错误信息如下所示&#xff1a; Uncaught ReferenceError: globalThis is not definedat r…...

图中点的层次

给定一个 nn 个点 mm 条边的有向图&#xff0c;图中可能存在重边和自环。 所有边的长度都是 11&#xff0c;点的编号为 1∼n1∼n。 请你求出 11 号点到 nn 号点的最短距离&#xff0c;如果从 11 号点无法走到 nn 号点&#xff0c;输出 −1−1。 输入格式 第一行包含两个整数…...

ansible+awx搭建

1、环境介绍 操作系统版本&#xff1a;龙蜥os 8.9 docker 版本&#xff1a;26.0.2 python版本&#xff1a;3.11.9 ansible版本&#xff1a;2.16.6 awx版本&#xff1a;24.2.0 2、安装docker 设置软件源 yum install -y yum-utilsyum-config-manager \--add-repo \https://mirr…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...