责任链模式的应用

ops/2024/10/18 20:20:48/

设计模式责任链模式

责任链模式介绍

概述

责任链模式是一种行为型模式。责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求。

上面对于责任链模式的定义不理解没关系,其实每一种设计模式的定义对于初学者来说都比较晦涩难懂,因为字都认识却无法理解其中的含义。必须等学完了,回过头来看才能更加深刻的理解其含义。

使用场景

设计模式的使用场景才是目前关注的重点之一。

小二哥是BAT某个公司的一个资深码农,他的媳妇还有1个星期预产期到了,小二哥想请半个月假期去陪媳妇,但是在小二哥公司,对于假期的批准,不同级别的领导权限是不一样的,比如3天以下的假期,小二哥的直属组长就能批了,对于一个星期的假期,需要走到总监这一层批准。半个月的 假期则需要走到总经理这个级别了。

小二哥请假的情况就非常适合使用责任链模式。事先不知道会由哪层领导批复假期,而各层领导的审批职责就好像铁链一样连接在一起,一个请求沿着这条链一直往上传。

看到这里, 如果还是很模糊,也没关系,talk is cheap show you the code,后面会用代码实现这个场景。


http://www.ppmy.cn/ops/20299.html

相关文章

目标检测(任务概述、机器学习时代的方法、深度学习时代的目标检测模型)

文章目录 目标检测任务概述机器学习时代的目标检测方法深度学习时代的目标检测模型基于提议的目标检测模型R-CNN 模型Fast RCNN 模型Faster RCNN 模型SSD 模型YOLO 模型 基于分割的目标检测模型FCN 模型U-Net 模型 目标检测任务概述 目标检测任务的概念:尝试从一张…

mysql添加普通索引(简单使用)

前言:以订单表(oms_order)为例,添加用户id(user_id)为普通索引 mysql添加普通索引(简单使用) 1.查看表已经存在的索引情况a.语法b.使用c.结果(这里还没有添加所以&#…

vue的axios使用!

什么是axios? 1.axios是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中, 也是 vue 官方推荐使用的 http 库;封装axios,一方面为了以后维护方便,另一方面也可以对请求进行自定义处理。 如何安装? npm in…

Windows 11 轻量简单的美化方案

Windows 11 美化最终往往是回到最初的默认配置 每次更新版本、重装系统都要维护无疑是麻烦事 这里存一下我的简易轻量级美化,多数云端同步,开箱即用 壁纸 Wallpaper engine 直接 steam 同步即可 HDR 在 post-processing 开启 多屏支持也比较好 类…

RAG开山之作:结合参数化与非参数化记忆的知识密集型NLP任务新解法

20年RAG刚提出时的论文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks,也算是RAG的开山之作之一了。 摘要:检索增强生成(RAG)方法结合了预训练语言模型与基于检索的非参数化记忆,通过…

掌静脉识别关键技术研究综述

掌静脉识别作为一种新兴的红外生物识别技术,因其高安全性、活体检测性等优势已成为当前生物特征识别领域中的研究热点之一。近年来,该领域的大量研究通过引入深度学习方法推动了掌静脉识别技术的发展。为了掌握掌静脉识别领域最新研究现状及发展方向&…

软件测试——Postman Script脚本功能

Postman作为软件测试里一款非常流行的调试工具,给我们提供了一个执行JavaScript脚本的环境,所以我们可以使用js语言编写脚本来解决一些接口自动化的问题,比如接口依赖、接口断言等等。Postman有Pre-RequestScript和Tests两个编写js脚本的模块…

排序FollowUp

FollowUp 插入排序 直接插入排序 时间复杂度:最坏情况下:0(n^2) 最好情况下:0(n)当数据越有序 排序越快 适用于: 待排序序列 已经基本上趋于有序了! 空间复杂度:0(1) 稳定性:稳定的 public static void insertSort(int[] array){for (int i 1; i < array.length; i) {int…