十一、职责链模式

设计模式---十一个行为型模式 十一个行为型模式 阅读详情

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

在这里插入图片描述

#include<iostream>
#include<string>
using namespace std;
//请求
class request
{
public:
	string type;//类型
	int count;//数量
	string content;//内容
public:
	request(string m_type, int len ,string m_content):type(m_type),count(len),content(m_content){}
};
//抽象管理类
class Manger
{
protected:
	string m_name;
	Manger *super;
public:
	Manger(string name):m_name(name){}
	virtual void setsuper(Manger *m_super)
	{
		super = m_super;
	}
	virtual void requestapplication(request m_request){}
};
//经理
class jingli:public Manger
{
public:
	jingli(string name):Manger(name){}
	void requestapplication(request m_request)
	{
		if(m_request.type=="请假" && m_request.count<3)
		{
			cout<<m_name<<": "<<m_request.content<<"数量:"<<m_request.count<<" 批准"<<endl;
		}
		else
		{
			super->requestapplication(m_request);
		}
	}
};
//主管
class zhuguan:public Manger
{
public:
	zhuguan(string name):Manger(name){}
	void requestapplication(request m_request)
	{
		if(m_request.type=="请假" && m_request.count<5)
		{
			cout<<m_name<<": "<<m_request.content<<"数量:"<<m_request.count<<" 批准"<<endl;
		}
		else
		{
			super->requestapplication(m_request);
		}
	}
};
//总经理
class zongjingli:public Manger
{
public:
	zongjingli(string name):Manger(name){}
	void requestapplication(request m_request)
	{
		if(m_request.type=="请假" && m_request.count<10)
		{
			cout<<m_name<<": "<<m_request.content<<"数量:"<<m_request.count<<" 批准"<<endl;
		}
		else
		{
			cout<<m_name<<": "<<m_request.content<<"数量:"<<m_request.count<<" 不批准"<<endl;
		}
	}
};
int main()
{
	request *myrequest = new request("请假" ,6,"小明请假");
	jingli *m_jingli = new jingli("经理");
	zhuguan*m_zhuguan = new zhuguan("主管");
	zongjingli *m_zongjingli = new zongjingli("总经理");

	m_jingli->setsuper(m_zhuguan);
	m_zhuguan->setsuper(m_zongjingli);

	m_jingli->requestapplication(*myrequest);
	myrequest->count=100;
	cout<<endl;
	m_jingli->requestapplication(*myrequest);
	myrequest->count=1;
	cout<<endl;
	m_jingli->requestapplication(*myrequest);
	return 0;
}
零基础玩转华为AP 4050DN-HD:FAT模式家庭无线网络配置实战 本文为零基础用户提供华为AP 4050DN-HD从FIT模式转换为FAT模式的完整实战教程。详细介绍了固件升级、模式转换以及配置家庭无线网络(包括路由、DHCP、Wi-Fi和NAT)的每一步操作,帮助用户将企业级瘦AP改造为高性能家庭胖AP,打造稳定可靠的家庭网络环境。 阅读详情

相关推荐

用Python和NumPy搞定复合材料层合板ABD矩阵计算(附完整代码与避坑指南)

本文详细介绍了如何使用Python和NumPy高效计算复合材料层合板的ABD刚度矩阵,包括单层板刚度计算、偏轴转换和层合板刚度集成。通过完整的代码示例和工程实践技巧,帮助工程师快速构建定制化分析工具,解决航空航天、汽车制造等领域的复合材料力学性能分析问题。特别提供了避坑指南和性能优化策略,确保计算结果的准确性和效率。

weixin_30752699的博客 279

第十一章 策略模式、职责链模式

# 设计模式 第十一章 策略模式、职责链模式 文章目录# 设计模式 第十一章 策略模式、职责链模式前言一、策略模式1.介绍2.代码示例二、职责链模式1.介绍2.代码示例 前言 策略模式、职责链模式 一、策略模式 1.介绍 行为型模式,定义算法分装起来,让然之间可以互相替换,让算法的变化独立于使用算法客户。 2.代码示例 //策略接口,代子类实现该方法 @FunctionalInterface public interface Comparator<T> { int comp

wpwdm159357的博客 303

开源 AHB不对称半桥反激电路设计(六)死区时间,谐振腔电流,谐振电感函数表达式

电流跌落可以使副边电流峰值和有效值降低,减小损耗,但如果开关管 S2 导通期间,谐振电流谐等于励磁电流,即副边电流A 点降至 0,会在原边变压器内形成环流,产生损耗,同时也不利于副边同步整流管驱动的正常工作,为了保证开关管 S2 导通期。在开关管 S1 和开关管 S2 均关断的死区时间内,谐振电流给原边开关管结电容和副边整流管结电容充放电,因此会引起开关 S1 关断瞬间电流跌落与开关 S2 关断瞬间电流震荡现象,受寄生参数影响原边谐振电流波形和副边电流波形如图。降到最低,变压器以最高效率向副边传递能量。

【Simon】的博客 1230

设计模式:十一.职责链模式

职责链系统(Chain of Responsibility Mode):是行为模式的一种。这个又和装饰模式很像,和装饰模式的区别是,职责链模式在跳转的时候,是不执行相关逻辑的,只执行判断条件类的代码,只执行自己职责内的代码。 目录 目录 1. 意图: 2. 如何使用: 3. UML模板: 4. 关键代码: 5. 优化: 1. 意图: 将多个接收者和发送者管理起来...

q493201681的博客 198

Python逆向爬取Tik Tok,MsToken,X-Bogus以及signature

tiktok作为字节海外的自媒体平台,具有很非常大的价值,本文旨在教会大家实现Tik Tok的签名获取以及数据的最终爬取。

weixin_74305707的博客 3272

UVC协议在STM32H7上的移植实战案例

手把手带你把UVC协议移植到STM32H7平台,重点解决USB高速枚举、视频流控制与YUV数据打包等关键问题。基于HAL库实现符合UVC 1.5规范的即插即用摄像头功能,让嵌入式设备轻松变身标准UVC视频源。

weixin_42437253的博客 397

JavaScript设计模式十一(职责链模式)

JavaScript设计模式十一(职责链模式) 定义: 职责链模式的定义是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,把这些对象连成一条链,并沿着这条链传递改请求,直到有一个对象能够处理它为止。 我们看个图就可以了 现实生活中的职责链模式 显示生活中其实有很多关于职责链模式的例子 我们现在上海的公交车上有些还是有售票员的,但是如果是早高峰,售票...

moyigg的博客 338

从零配置ORB-SLAM3:TUM-VI数据集yaml文件参数调优指南

本文深入解析了ORB-SLAM3在TUM-VI数据集上的yaml配置文件参数调优方法。针对双目惯性模式,详细拆解了相机标定、IMU噪声模型和ORB特征提取三大模块的关键参数,解释了其原理与影响,并通过实战案例展示了如何通过调整特征点数量、FAST阈值及IMU噪声参数,有效提升系统在低纹理环境下的鲁棒性和轨迹精度。

weixin_29071809的博客 152

设计模式学习笔记二十一、职责链模式概念

一、问题 1、学校OA系统的采购项目需求 1)采购员采购器材 2)金额小于等于5000,由教学主任审批(0<= x <= 5000) 3)金额小于等于10000,由院长审批(5000<= x <= 10000) 4)金额小于等于3000,由副校长审批(10000<= x <= 30000) 5)金额超过30000,由教学主任审批(30000<x ) 2、不用设计模式传统方式 1)接收到一个采购请求,根据采购金额来调用对应的Approver(审批人)完

promiseful的博客 222

手把手教你学Simulink——无刷直流电机(BLDC)霍尔传感器(Hall Sensor)信号处理电路仿真

在中,转子位置靠​ 给出,换相逻辑(Commutation Table)据此决定。实际霍尔输出是,且常有:比较迟滞(内置或外加分压)RC 低通(防 EMI 尖刺)与 MCU 间想让你霍尔三相 UVW 理想方波(120° each, 换相每 60°elec)经观察:原始 HU/HV/HW、滤波后波形、整形后 TTL 电平验证换相表(001→100→010…)与转子转向匹配是破局关键。

amy_mhd的博客 39

手把手教你学Simulink--基于新型通信技术集成的场景实例:无人机利用激光通信实现高速率数据传输

摘要: 本文基于Simulink搭建无人机激光通信仿真系统,解决传统射频通信带宽不足问题。系统通过五层架构(发射机、信道、PAT系统、接收机、性能分析)实现Gbps级高速传输,重点建模大气衰减(雾/雨)、光束发散、PAT精跟踪(Stateflow+PID控制)等核心模块。仿真结果显示:晴天链路可达2.5Gbps(BER 1e-8),浓雾下链路中断,验证了雾是主要性能限制因素。案例涵盖调制方式选择、动态环境仿真及3D可视化,为无人机高速数据传输提供可扩展的仿真框架,并指出混合FSO/RF、AI-PAT等优化方

MHD0815的博客 181

设计模式(C++实现)(二十一)——职责链模式

示例问题: 软件在运行时出了问题,需要解决的时候,是不是会出现下述这种很头痛的情况。比如,前端网页无法加载显示图片了,这个问题去找前端的同事处理,前端的同事看了下,说不是他的问题,是中间件传输过来的数据有问题;又找中间件的同事去看,中间件的同事说,是后端java那块发送过来的数据有问题;又去找java开发的同事,java开发的同事说,数据库表结构损坏导致出了问题;又去找数据库的同事解决问题,最终...

huashuolin001的博客 411

[QMT量化交易小白入门]-七十六、从tick数据中获取高频交易的量价背离信号

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 794

设计模式之职责链模式永不罢休(二十一)

看到游戏, 就来劲了, 职责链模式详解 职责链模式(chain of responsibility)的定义 为了避免请求的发送者和接受者之间的耦合关系, 使多个接收对象都用机会处理请求. 将这些对象连成一条链, 并沿着这条链传递请求, 直到有一个对象处理它为止 职责链模式解决的问题 客户端与具体的处理者解耦, 客户端只需要认识一个hanlder接口, 降低...

weixin_30340819的博客 58

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java设计模式十一: 职责链模式(Chain of Responsibility)

职责链模式是一种对象的行为模式。在职责链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。类图:职责链模式的组成:抽象处理者(Handler)角色:定义出一个处理请求的接口。如果需要,接口可以定义出一个方

萌萌的It人 www.itmmd.com 794

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JAVA设计模式十一--Chain of Responsibility(职责链模式)

职责链模式: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的藕合关系。将这个对象连成一条链 ,并沿着这条链传递该请求,直到有一个对象处理它为止。  1.当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHandler对象负责处理它。  2.接收者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构。结果是职责链可简    化对象的相

Y-CAT的专栏 2036

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

设计模式(二十一)—职责链模式(行为型)

一、简介(Brief Introduction)         使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。   二、模式分析(Analysis) Handler: 抽象处理者:定义出一个处理请求的接口。如果需要,接口可以定义出一个方法,以设定和返回对下家的引用。这个角色通

遇见更好的自己 989

JAVA设计模式十一:--Chain of Responsibility(职责链模式)

职责链模式: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的藕合关系。将这个对象连成一条链 ,并沿着这条链传递该请求,直到有一个对象处理它为止。  1.当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHandler对象负责处理它。  2.接收者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构。结果是职责链可简    化对象的相

魔都~艾辛格 628

十一个行为型模式1:职责链模式-Chain of Responsibility Pattern【学习难度:★★★☆☆,使用频率:★★☆☆☆】

引入动机:职责链可以是一条直线、一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求。 链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组织成一条链,并使请求沿着链传递,由链上的处理者对请求进行相应的处理,客户端无须关心请求的处理细节以及请求的传递,只需将请求发送到链上即可,将请求的发送者和请求的处理者解耦。这就是职责链模式的模式动机。 职责链模式(Chai

JackZhangNJU的专栏 431

Java设计模式之十一大行为模式下篇

中介者模式(Mediator Pattern) 备忘录模式(Memento Pattern) 解释器模式(Interpreter Pattern) 状态模式(State Pattern) 策略模式(Strategy Pattern) 职责链模式(Chain of Responsibility Pattern)

CharlesYan的博客 242

设计模式27---行为模式

行为模式:职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式等十一种模式。 转载于:https://www.cnblogs.com/linghu-java/p/8966606.html...

weixin_30314813的博客 66

设计模式学习(四)

行为型设计模式   ①观察者模式           观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并自动更新。   ②命令模式             命令模式:将一个请求封装成一个对象,从而可以使用不同的请求对对客户进行参数化;可以请求排队或记录请求日志,以及支持撤销等操作。   ③职责链模式

yg452378661的博客 317

基本设计模式

文章目录代理模式观察者模式(发布订阅模式)装饰器 设计模式:针对特定的场景,在软件设计过程中常见的代码范式(通用解决方案,与语言无关)。 观察者模式(麦当劳点餐) 代理模式(花店送花) 装饰器:可以允许向一个对象添加新的功能,却不改变原有对象。比如: 给文件上传功能添加日志输出功能 react中redux的@connect 代理模式 特点:代理对象与真实对象有相同的行为 真实对象->代理对象->用户 花店送花:男孩让花店送花给女孩 //定义女孩对象 var Girl = funct

沛沛呀、 369

JAVA设计模式之职责链模式详解

职责链模式(chain of responsibility pattern) 定义: 避免将一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求.将接收请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止.在职责链模式中,多个处理器(也就是刚刚定义中说的“接收对象”)依次处理同一个请 求。一个请求先经过 A 处理器处理,然后再把请求传递给 B 处理器,B 处理器处理完后再 传递给 C 处理器,以此类推,形成一个链条。

励志成为一名优秀的全能型软件开发工程师。 2087

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

避免讲一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求,将接受请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能处理他为止;

LB_bei的博客 1121

职责链模式

职责链模式

说文科技,做有态度的研究。 832
上一篇: 十二、备忘录模式
下一篇: 十、中介者模式
越甲八千
博客等级 码龄11年 2959粉丝 553原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值