设计模式之责任链模式

【Java设计模式】Java设计模式之(五)责任链模式(Chain of Responsibility Pattern) 本文目录 一、责任链模式介绍 二、代码实现 2.1 业务逻辑 2.2 代码实现 顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。 一、责任链模式介绍 意图:避免请求发送者与接收者耦合在一起,让多个对象都 阅读详情

什么是个责任?

当然是有事,不会推卸责任啊

为什么有个链?

因为你必须知道,这个责任得推给谁,一级一级往下推。

举个例子来说明,你们的老师(相当一个request)要求你们小组完成一项任务,你们小组A,B,C三个人,那你们怎么办?

但是老师,其实并不关注你们谁会做,可是,他关注你们做完没有,做的怎么样?

A来看这个任务,他发现他不会,可是他知道B的水平比他高,他不会就推给了B,让B来做

B来做这个任务,他还差点,还是没完成,但他知道C更厉害,于是,他也推给了C,

C拿来这个任务,果然,很快的解决了这个问题。

那么这个过程,就顺利的完成了。


有人问了,那还不是和传统的一样,每个人都调用一次?

但是,你可想到,假如A直接会做,那么B,C都没关系了,同样的B要会做直接就跳过了C。


1)       有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。

2)       你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。

3)       可处理一个请求的对象集合应被动态指定。


有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求



此处强调一点就是,链接上的请求可以是一条链,可以是一个树,还可以是一个环,模式本身不约束这个,需要我们自己去实现,同时,在一个时刻,命令只允许由一个对象传给另一个对象,而不允许传给多个对象。

关于这个链,是你自己去创建的,所以,不同的人,创建的方式也就不一样了。

看了一些,感觉这个最简洁:

http://zz563143188.iteye.com/blog/1847029

Python逆向实战:突破PDD长连接抓包的技术解析 本文详细解析了如何通过Python逆向技术突破PDD长连接抓包的难点,包括分析PDD的网络机制、绕过SSL证书验证以及完整抓包实战流程。文章重点介绍了使用Frida和VAXposed工具解决长连接和SSL Pinning问题,并提供了Python代码示例和数据分析方案,帮助开发者高效抓取PDD数据。 阅读详情

相关推荐

《iOS之一起进大厂》系列-秒杀面试官的RunLoop底层原理面试题

Runloop是iOS面试中的必考题,不管大厂小厂都会问到。 这里包括了Runloop几乎所有的面试题,还有中肯完整的答案解释。

空杯子 1151

设计模式之职责链模式

前言 《亮剑》大家非常熟悉的一部电视剧了,毕竟当年很多电视台都在播放,而且拍的非常不错,得到了广大人 民群众的认可。反正自己偶尔还是会再看一看,这部电视剧自己看了至少不下三遍了。剧中非常熟悉的“二营长, 你他娘的意大利炮呢?”,这个是发生在李云龙攻打平安县城的时候,不知大家还记不记得攻打之前赵刚劝过说: “这么大规模的战役,是需要请示上级的”。军队上不同的领导对于自己领导的部队有...

逝水流年染轻尘的博客 539

爬取百度图片

最开始,我们想要爬取图片,首先需要打开百度图库,然后在搜索栏中输入自己想要的图片(比如说壁纸)。接着右键检查,点击网络:起初可能没有名称信息,刷新界面就可以了。打开信息,查看标头内容可以看到请求URL为:复制这串URL,然后在浏览器中打开这个就是我们搜索的壁纸图片的网页内容。怎么找到图片的URL呢?在上述内容中,找到data,可以发现里面每隔一个aiEditData,下面代码的形式是一样的,就相当于一张图片。

weixin_54143563的博客 1939

设计模式——职责链

基类Employee.h #ifndef __EMPLOYEE_H__ #define __EMPLOYEE_H__ #include "stdafx.h" #include using namespace std; class CEmployee { public: CEmployee(); void setSuccessor(CEmployee* successor){m_Succ

cdjzzzz的博客 436

libiec61850实战:手把手教你用C语言动态获取IED设备模型(附完整代码解析)

本文详细介绍了如何使用libiec61850库通过C语言动态获取IED设备模型,包括环境配置、连接建立、模型遍历及错误处理等关键步骤。通过完整的代码示例和实战案例,帮助开发者掌握智能变电站通信中的核心技术,提升工业自动化系统的开发效率。

weixin_42519985的博客 433

单细胞marker基因表达密度图-(还有一个包装函数)

我们借助Nebulosa,将上面的过程包装为一个函数,还是那句话,受累麻烦的事我们来解决,您轻松即可,先看看函数参数:需要注意的是,如果你只想框选某一类celltype,理想模式是这群celltype是单独聚类的,没有散落在其他类群,否则将会全部框选,效果不好,建议使用AI/PS添加。需要注意,这里我算是投机取巧了,用了一个和这个作图毫无关系的包ggnetwork,主要的目的是用他的theme_blank()主题,一次性将所有清空,当然也可以自己慢慢写,不过有现成的,为啥不用呢?这质感不就上去了嘛。

qq_42090739的博客 1366

设计模式-责任链模式-Chain of Responsibility Pattern

创建一个抽象基类,定义处理请求的接口和设置下一个处理者的指针。

wesigj的博客 2385

【WorkBuddy专栏25】如何选择大模型——积分消耗、用途场景、选型决策全指南

【WorkBuddy专栏25】如何选择大模型——积分消耗、用途场景、选型决策全指南

AI人人懂 927

【设计模式】责任链模式(Chain of Responsibility Pattern)

责任链模式()是将链中的每一个节点看做成一个对象,每个节点处理的请求均不同,且内部自动维护一个下一个节点对象,当一个请求从链式的首端发出时,会沿着链路的路径一次传递给每一个节点对象,直至有对象处理这个请求为止。责任链模式是一种行为型设计模式。...

老男孩的架构路 538

1985-2021年30m全国逐年土地覆被数据(含分省数据)

基于CLCD,揭示了1985年至2019年期间中国土地覆被变化的趋势和模式,如不透水表面(+148.71%)和水(+18.39%)的扩大,耕地(-4.85%)和草地(-3.29%)的减少,以及森林(+4.34%)的增加。由于中国的一系列造林政策,如1980年代启动的三北防护林工程和2000年后启动的绿色增益工程,从1985年到 2019年,森林增加了4.34%,灌木减少了259万公顷,与 ESACCI_LC的减少趋势相似。尽管为了养活不断增长的人口,中国东北和西北地区进行了广泛的开垦,但耕地普遍减少。

J_Giser的博客 1469

Android15 修改触摸点上限为40

把MAX_POINTER_ID从默认的31修改为39,这里为什么要从31修改为39,是因为上面说明用BitSet32极限就只能支持32个点,因为从最小的ID是0,所以要支持40个点ID也要对应改为39.最近有个需求,需要修改Android系统的触摸点数,Android系统默认的点数是16个点,因为现在是大屏项目,有客户需要修改为40个点,好吧,客户最大。6.最后进行编译,开机开启触摸点检测,可以使用开发者模式中的显示触摸点功能,再叫上3个人,用双掌触摸屏幕,发现左上角有显示40个触摸点,修改成功。

tzj1058756809的博客 572

设计模式中的责任链模式(Chain of Responsibility Pattern)

在软件开发中,经常会遇到需要按照顺序处理请求的情况,例如日志处理、权限控制、审批流程等。如果使用硬编码的 `if-else` 结构,代码将变得复杂且难以扩展。 **责任链模式(Chain of Responsibility Pattern)** 提供了一种**将请求的处理者组织成链式结构**的方法,使请求可以**沿着责任链传递,直到被某个处理者处理**,从而提高代码的灵活性和可扩展性。本文将详细介绍责任链模式的概念、应用场景,并通过 Python 代码示例展示其实现方式。

2490

64、5G 侧链通信技术详解

本文详细解析了5G侧链通信的关键技术,包括资源感知与选择、UE间协调、混合ARQ、功率控制、信道探测与CSI报告以及侧链同步。资源感知与选择通过周期性或随机方式实现资源分配,UE间协调通过主动或被动方式避免资源冲突。混合ARQ机制确保数据传输可靠性,功率控制和信道探测优化传输质量并减少干扰。侧链同步则通过多种方式确保设备间时间一致性。这些技术相互配合,构建了高效稳定的5G侧链通信体系,适用于智能交通、物联网、应急通信等多个领域,为未来无线通信发展提供强大支撑。

oil88的博客 99

设计模式之责任链模式(Chain of Responsibility Pattern)

What: 责任链模式也叫职责链模式。为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 Why: 优点: 1.降低耦合度。它将请求的发送者和接收者解耦。 2.增强给对象指派职责的灵活性。通过改变链内的成员或者调动它们的次序,允许动态地新增或者删除责任。 缺点: 1.责任...

qq_37212210的博客 503

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java设计模式——责任链模式【Chain of Responsibility Pattern】

Java设计模式、责任链模式、Chain of Responsibility Pattern

scorpio的博客 1095

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

23种设计模式——责任链模式(Chain of Responsibility Pattern)

本文介绍了23种经典设计模式之——责任链模式(Chain of Responsibility Pattern)的使用及说明

Meteors.的博客 885

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

设计模式——责任链模式(Chain of Responsibility Pattern)+ Spring相关源码

每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。

码鹿的记录 1014

设计模式之责任链模式【Chain Of Responsibility Pattern】

当客户端发出一个请求,有多个对象都有机会来处理这个请求,但是客户端不知道究竟谁会来处理他的请求时,这是就可以使用责任链模式来处理这种情况。 1、定义 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 2、使用场景 多个对象可以处理一个请求,但具体由哪个对象处理则在运行时动态决定。 在请求者不明确...

Rogera的博客 920

设计模式:责任链模式(Chain of Responsibility Pattern)

责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。

TechNomad的博客 975

设计模式-12责任链模式Chain of Responsibility Pattern

责任链模式是一种行为设计模式,允许多个对象处理请求,避免请求发送者与接收者直接耦合。它将对象连成链,请求沿链传递直至被处理。适用于需要动态指定处理顺序、避免直接耦合的场景。结构包含处理者接口、抽象处理者和具体处理者。实现时,每个处理者决定是否能处理请求或传递给下一处理者。示例展示了采购审批流程,不同级别审批人根据金额限制处理请求,无法处理则转交上级。

d3y1`5 81_09 862

Java设计模式 十九 责任链模式 (Chain of Responsibility Pattern)

责任链模式通过将请求沿链传递,让多个对象有机会处理请求,避免了请求发送者与接收者的直接耦合。它使得对象的行为更加灵活,并且能够在不修改客户端代码的前提下,动态地改变处理流程。虽然责任链模式提供了更大的灵活性,但在链较长或处理较复杂时,可能导致处理效率降低,因此需要在适当的场景中使用。

空 1040

java设计模式---责任链模式(Chain of responsibility pattern)

java设计模式—责任链模式(Chain of responsibility pattern) 1. 概述 之前我们已经结束了创建型和结构型设计模式,接下来我们介绍行为型设计模式,行为型设计模式包含了11中,首先介绍的是责任链模式。该模式中包含了一些命令对象和一系列的处理对象,每一个对象都都保有对其下家的引用。如果我们将链中的每个节点看做是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从...

渔潭的博客 936

[设计模式] 责任链模式(Chain of Responsibility Pattern)

什么是责任链模式? 责任链模式是一种对象行为模式。顾名思义,责任链就是把承担不同责任的对象通过某种方式连接在一起形成一条链。当客户端把请求发送到这个责任链上的时候,本质上就是在链上不同的对象之间流转,直到链上的某个对象可以处理该请求,或者每个对象都处理该请求。 根据链上对象对请求的不同处理方式,责任链模式有两类: (1) 纯责任链模式 一个具体的处理者对象只能在两个行为中选择一个:要么承担全部责任,要么将责任推给下家。不允许出现某一个具体处理者对象在承担了一部分或者全部责任后,又将责任向下传递的情况。 一

asd13518662的博客 186

设计模式-责任链模式(Chain of Responsibility Pattern)

java 设计模式 责任链模式

weixin_43438824的博客 412

设计模式——责任链模式(Chain of Responsibility Pattern)

这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这是一个简单的责任链模式,作用也体现出来了,作为果农(请求方),我们不需要知道我们的果子被谁收购了(不需要知道我们到底要调用哪个接口),只要把果子拿出来交给责任链,他就会帮助我们找到收购方(只要交给服务器,服务器就会帮我们找到要调用的接口)。秋天来了,果农伯伯种的果子都成熟了,需要把果子卖出去,果子有好有坏,品质大不相同,所以买的方式也不一样,好的果子可能就被作为新鲜水果出售,差一点的果子可能就被作为罐头、果汁等其他方式进行销售,如下图。

虚心学习,和气编码 1207

设计模式教程:责任链模式(Chain of Responsibility Pattern)

使多个对象有机会处理请求,从而避免请求的发送者与接收者之间的耦合关系。

遇见伯灵说的博客 1013
上一篇: 设计模式之迭代模式
下一篇: 设计模式之命令模式
Scofield-
博客等级 码龄14年 12粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值