当前位置: 首页 > 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;硬件看门狗被奉为防止系统死机的终极神明。但无数软硬件工程师出于偷懒或对底层架构的无知&#xff0c;将“喂狗”动作外包给了高频的定时器中断或最高优先级的独立任务。本文将彻底摒弃代码&#xff0c;纯粹从系统架构的安全哲…...

【STM32HAL库实战】从零构建外部中断:按键唤醒与事件响应

1. 外部中断基础与STM32应用场景 第一次接触STM32外部中断时&#xff0c;我盯着原理图上的按键发呆了半小时——明明GPIO轮询检测就能实现的功能&#xff0c;为什么非要大费周章配置中断&#xff1f;直到某个深夜调试项目时&#xff0c;才真正体会到中断机制的精妙之处。当时我…...

避坑指南:Qt Modbus TCP开发中自动刷新与写入冲突的排查与修复

Qt Modbus TCP开发实战&#xff1a;自动刷新与写入冲突的深度解决方案 在工业控制系统的HMI界面开发中&#xff0c;实时数据刷新与用户交互操作的平衡是个经典难题。上周调试一个智能仓储监控系统时&#xff0c;就遇到了这样的场景&#xff1a;当PLC寄存器数据以500ms间隔自动刷…...

找靠谱支付通道?这 5 个核心要点 + 筛选技巧必看

想找到靠谱的支付通道&#xff0c;重点关注 5 大核心维度&#xff0c;再配合辅助筛选方法&#xff0c;就能避开大部分坑&#xff1a;资金安全是底线&#xff1a;优先选有央行支付牌照、资金存管合规的机构&#xff0c;避免资金风险。通道稳定是关键&#xff1a;确保交易高峰期不…...

STC15单片机入门避坑指南:手把手教你用查询法实现带按键控制的流水灯(附Proteus工程)

STC15单片机实战避坑指南&#xff1a;从按键消抖到精准延时的流水灯设计精要 第一次点亮LED时的兴奋感&#xff0c;往往会被按键失灵、灯光乱跳的现实浇灭。作为STC15单片机入门的第一个综合实验&#xff0c;按键控制流水灯看似简单&#xff0c;却暗藏诸多新手陷阱。本文将用真…...

OpenClaw安全实践:Phi-3-mini-128k-instruct本地化部署的3个关键配置

OpenClaw安全实践&#xff1a;Phi-3-mini-128k-instruct本地化部署的3个关键配置 1. 为什么需要关注OpenClaw的安全配置&#xff1f; 去年夏天&#xff0c;我在整理个人财务数据时突发奇想&#xff1a;能否用AI自动生成月度支出分析报告&#xff1f;这个看似简单的需求&#…...

企业级AI Agent Harness工程落地的5个核心步骤与关键里程碑

企业级AI Agent Harness工程落地的5个核心步骤与关键里程碑 开篇:从「大模型玩具」到「生产级生产力工具」的鸿沟 各位技术同仁、架构师、企业数字化负责人,下午好!欢迎来到我的「AI工程化落地指南」专栏——这是我们的第17篇原创深度文章。 过去18个月里,我作为全球TOP3…...

MacOS极简部署OpenClaw:5分钟连接Phi-3-vision-128k-instruct模型

MacOS极简部署OpenClaw&#xff1a;5分钟连接Phi-3-vision-128k-instruct模型 1. 为什么选择OpenClawPhi-3组合 去年第一次听说AI能直接操作我的电脑时&#xff0c;我本能地感到不安——让一个云端模型控制本地文件系统&#xff1f;这听起来就像把家门钥匙交给陌生人。直到发…...

CSS定位如何实现模态框垂直居中_使用负边距或transform

transform: translate(-50%, -50%) 是最稳的居中方式&#xff0c;配合 position: absolute 或 fixed 及 top: 50%、left: 50%&#xff0c;可无视元素尺寸变化实现精准居中&#xff0c;且兼容滚动与响应式场景。用 transform: translate(-50%, -50%) 是最稳的居中方式绝对定位 …...

8年Java后端转型AI,踩坑一年总结:后端工程力是大模型应用开发的护城河!涨薪30%的秘诀在此

做了八年Java后端&#xff0c;去年咬牙转型AI应用开发。这一年踩过坑、加过班、也被面试官问倒过。但回头看&#xff0c;这条路选对了——薪资涨了30%&#xff0c;职业空间也打开了。我必须告诉那些还在犹豫要不要从后端跳出来的同行——现在的AI应用开发社招&#xff0c;确实是…...