GoF23种设计模式之行为型模式之责任链模式

大数据实时+离线项目架构----智慧物流大数据平台(超流行框架!) 智慧物流大数据平台 文章目录智慧物流大数据平台一、项目背景二、逻辑架构三、解决方案技术亮点:数据流转四、项目的技术选型4.1流式处理平台4.2 分布式计算平台4.3 海量数据存储框架软件版本总结 一、项目背景 本项目基于一家大型物流公司研发的智慧物流大数据平台。该物流公司是国内综合性快递、物流服务商,并在全国各地都有覆盖的网点。经过多年的积累、经营以及布局,拥有大规模的客户群,日订单达上千万。如此规模的业务数据量,传统的数据处理技术已经不能满足企业的经营分析需求。公司需要基于大数据技术构建数据中心,从而挖 阅读详情

一、概述

        使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并且沿着这条链传递请求,直到有一个对象处理它为止。其设计思想是:给对多个对象处理一个请求的机会,从而解耦请求发送者和接收者。

二、适用性

1.有多个对象可以处理一个请求,到底是哪个对象处理请求,交由运行时刻自动确定的时候。

2.你想在不明确指定接收者的情况下,向多个对象中的一个发送请求的时候。

3.可以处理一个请求的对象集合应该被动态指定的时候。

三、参与者

1.Handler:定义一个处理请求的接口。可能的话实现后继链(option)。

2.ConcreteHandler:链上的具体处理者。处理它负责的请求。可以访问它的后继。如果可以处理该请求,就处理;否则将该请求转发给其后继。

3.Client:向链上的具体处理者对象提交请求。

四、类图


五、示例

Handler

package cn.lynn.chainofresponsibility;

public interface IRequestHandler {

    public void handleRequest(IRequest request);

}
ConcreteHandler
package cn.lynn.chainofresponsibility;

public class SunRequestHandler implements IRequestHandler {

    @Override
    public void handleRequest(IRequest request) {
        if(request instanceof FightRequest) {
            System.out.println("悟空火眼金睛,三打白骨精!");
        }
    }

}
package cn.lynn.chainofresponsibility;

public class ZhuRequestHandler implements IRequestHandler {
    private IRequestHandler handler;
    
    public ZhuRequestHandler(IRequestHandler handler) {
        this.handler = handler;
    } 

    @Override
    public void handleRequest(IRequest request) {
        if(request instanceof PeepRequest) {
            System.out.println("八戒偷窥嫦娥,被贬下凡!");
        }
        handler.handleRequest(request);
    }

}
package cn.lynn.chainofresponsibility;

public class ShaRequestHandler implements IRequestHandler {

    private IRequestHandler handler;
    
    public ShaRequestHandler(IRequestHandler handler) {
        this.handler = handler;
    } 
    
    @Override
    public void handleRequest(IRequest request) {
        if(request instanceof FindRequest) {
            System.out.println("师傅让妖怪抓走了,沙增找不到!");
        }
        handler.handleRequest(request);
    }

}
Client
package cn.lynn.chainofresponsibility;

public class Client {

    public static void main(String[] args) {
        IRequestHandler sun = new SunRequestHandler();
        IRequestHandler zhu = new ZhuRequestHandler(sun);
        IRequestHandler sha = new ShaRequestHandler(zhu);
        
        IRequest request = new FindRequest();
        sha.handleRequest(request);
        
        request = new PeepRequest();
        zhu.handleRequest(request);
        
        request = new FightRequest();
        sun.handleRequest(request);
    }

}
Result
师傅让妖怪抓走了,沙增找不到!
八戒偷窥嫦娥,被贬下凡!
悟空火眼金睛,三打白骨精!

OpenGL ES 3.0 开发(一):绘制一个三角形 该原创文章首发于微信公众号:字节流动 什么是 OpenGLES OpenGLES 全称 OpenGL for Embedded Systems ,是三维图形应用程序接口 OpenGL 的子集,本质上是一个跨编程语言、跨平台的编程接口规范,主要应用于嵌入式设备,如手机、平板等。由科纳斯(Khronos)组织定义和推广,科纳斯是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。 O... 阅读详情

相关推荐

【win10+RAGFlow+Ollama】搭建本地大模型助手(教程+源码)

在当今科技飞速发展的时代,人工智能(AI)已经成为各行各业不可或缺的一部分。特别是在文档处理和数据分析领域,AI的应用更是无处不在。今天,我要向大家介绍一个开源的AI框架引擎——RAGflow。它能够在深度文档理解方面执行检索增强生成(Retrieval-Augmented Generation,简称RAG),并且被认为是目前最优秀的RAG框架之一。本文将详细探讨RAGflow的创新功能、技术特点以及如何在实际应用中发挥其最大潜力。

Yooao的博客 9618

GOF23设计模式-行为型模式1-责任链模式(Chain of Responsibility)

GOF23设计模式-责任链模式: 将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能将请求传递给链上的下一个对象。 ...

Tumbler 233

基于Simulink的防空导弹六自由度弹道建模与仿真实战

本文详细介绍了基于Simulink的防空导弹六自由度弹道建模与仿真方法。通过分析导弹动力学原理、Simulink环境配置、气动力建模、推进与控制系统设计等关键环节,提供了一套完整的实战指南。文章特别强调了六自由度模型在防空导弹仿真中的重要性,并分享了常见问题排查与优化建议,为相关领域工程师提供实用参考。

apple5的专栏 868

面向对象设计原则和GOF23种设计模式

本文一起看下面向对象的设计原则和GOF 23 种常用的设计模式。

wang0907的博客 362

用OpenCV+ROS实现焊接机器人智能纠偏:线激光视觉的算法调参全流程

本文详细介绍了基于OpenCV和ROS的焊接机器人智能纠偏系统全流程。通过线激光视觉系统实时感知焊缝,重点解析了抗干扰图像预处理、改进的Steger算法提取激光条纹中心线,以及从2D像素到机器人基坐标系的完整坐标变换。该系统为应对焊接飞溅、弧光等复杂工况,实现高精度实时路径纠偏提供了从算法优化到工程集成的完整解决方案。

vodka的博客 159

钉钉宜搭低代码开发师高级认证考试题库113题

钉钉宜搭低代码开发师(高级)考试试题题库,多次考试收集整理,判断题,单选题,多选题,排版清晰,查找方便。希望能帮助到大家!!!

qq_40811920的博客 6399

设计模式GOF23之-----------行为型模式(责任链模式、迭代器模式、中介者模式、命令模式、解释器模式、访问者模式、模版方法模式、状态模式、观察者模式、备忘录模式)

一 责任链模式        任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。 责任链模式的结构   下面使用了一个责任链模式的最简单的实现。   责任链...

金州饿霸吃不饱的博客 871

用Logisim搞定华科计组实验:单总线CPU设计从微程序到硬布线的保姆级通关攻略

本文详细介绍了如何使用Logisim完成华中科技大学计算机组成原理实验中的单总线CPU设计,涵盖从微程序控制器到硬布线控制器的完整实现过程。通过MIPS指令译码器设计、微程序控制原理、状态机实现等关键步骤的保姆级教程,帮助学生掌握CPU设计的核心技能,并提供Educoder平台提交与调试的实用技巧。

weixin_30897233的博客 476

设计模式-23种设计模式

设计模式-23种设计模式 目录 文章目录前言设计模式简单介绍创建型1. 工厂模式2. 抽象工厂模式3. 单例模式4. 建造者模式建造者模式(Builder Pattern)建造者模式详解设计模式:Builder模式5. 原型模式结构型1. 适配器模式2. 桥接模式3. 过滤器模式4. 组合模式5. 装饰器6. 外观模式7. 享元模式8. 代理模式行为型1. 责任链模式2. 命令模式3. 解释器模式4. 迭代器模式5. 终结者模式6. 备忘录模式7. 观察者模式8. 状态模式9. 空对象模式10. 策略模式1

莫兮的博客 5134

别再傻傻分不清PBR和NPR了!从《原神》到《双城之战》,聊聊游戏里那些让你眼前一亮的渲染风格

本文深入解析了PBR(基于物理的渲染)与NPR(非真实感渲染)在游戏视觉风格中的应用差异,通过《原神》和《双城之战》的案例,展示了两种渲染技术如何创造出截然不同的艺术效果。从技术原理到实战案例,帮助读者理解如何根据项目需求选择合适的渲染风格。

weixin_30425949的博客 147

前端使用二开Thingsboard一、二、三事(三)-规则链

以项目实战为基础,逐步介绍前端在thingsboard系统二次开发中的一些注意事项以及一些thingsboard一些页面功能讲解,为前端人员开发使用thingsboard提供一种可靠思路,打造一个完美的物联网系统。

weixin_43163457的博客 863

Java设计模式:23种设计模式

1.软件设计模式概述 2.GoF 的 23 种设计模式的分类和功能 3.UML中的类图及类图之间的关系 4.开闭原则——面向对象设计原则 5.里氏替换原则——面向对象设计原则 6.依赖倒置原则——面向对象设计原则 7.单一职责原则——面向对象设计原则 8.接口隔离原则——面向对象设计原则 9.迪米特法则——面向对象设计原则 10.合成复用原则——面向对象设计原...

weixin_30522183的博客 167

我用C#实现上位机数据一键导出Excel:从乱码到百万行数据秒级导出的实战技巧

ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("日报表");// 1. 标题(合并单元格)worksheet.Cells["A1"].Value = $"产线日报表 -DateTimeNowToString// 2. 表头和数据(同上)worksheet.Cells["A3"].Value = "时间";// ...省略表头和数据填充// 3. 合计行(公式计算)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 712

3.设计模式_03_行为型设计模式_01_常用模式

摘要:GoF 23种设计模式分为创建型(5种)、结构型(7种)和行为型(11种)三大类。策略模式是一种行为型模式,它将算法封装为独立类,使它们可互换。核心思想是分离算法使用与实现,避免条件判断。主要角色包括上下文、策略接口和具体策略。优点包括算法自由切换、扩展性好,缺点是增加类数量。典型应用场景如电商支付系统,示例展示了支付宝、微信支付等不同支付策略的实现。通过策略模式可以优雅解决支付方式多样化带来的代码维护问题。

u011488477的博客 937

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

设计模式的C语言应用

【摘要】 软件编写模式是开发过程中的重要经验总结。灵活运用设计模式,一方面利于我们编写高质量的代码,另一方面也方便我们对代码进行维护。 设计模式最开始是针对面向对象语言提出的。经典的书如《设计模式:可复用面向对象软件的基础》,《java与模式》。《设计模式》的作者俗称”GOF”, gang of four,书中从面向对象的设计中精选出23个设计模式,这个也成了后来设计模式的范例。 C语言设计模式的书非常少,目前没有看到合适的。有一本《C嵌入式编程设计模式》,作者douglass。书一共6章,里面没有太多

m0_37777700的博客 605

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【笔记-转载】23 种设计模式

23 种设计模式:工厂方法模式 ,抽象工厂模式,单例模式,原型模式,建造者模式,适配器模式,装饰器模式,代理模式,门面模式等

qq_56402474的博客 161

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

玄子Share 设计模式 GOF 全23种 + 七大设计原则

此文主要内容为,面向对象七大设计原则(OOD Principle),GOF(Gang Of Four)23种设计模式,拓展的两个设计模式,简单工厂模式(Simple Factory Pattern),空对象模式(Null Object Pattern),以及工厂模式与策略模式(Factory And Strategy Pattern)之间的区别,两个设计模式较为相似,细节上需要分清,每个设计模式都分为了八步介绍,先对设计模式进行简单介绍,尽量一句话概述,方便记忆,再以现实生活中的场景举例,抛出问题解决问题

qq_62283694的博客 3442

五万字详解“GoF”的23种设计模式

大家好,我是栗筝i,近期我总结梳理了 “GoF”的 23 种设计模式,并使用 Java 对每种设计模式都进行了伪代码与 Demo 实现,并总结了每种设计模式的应用场景,优缺点,UML图等相关内容,字/词数达到了5万,希望对大家有所帮助~~

栗筝i的博客 4167

永不磨灭的设计模式(有这一篇真够了,拒绝标题党)

在IT这个行业,技术日新月异。有可能你今年刚弄懂一个编程框架,明年它就不流行了,无怪乎有些无节操的IT从业人员去GitBub上用汉语提Issue:“求你别更新了,实在学不动了”。对于这种行为我只能说,太jb不要脸了… 然而即使在易变的IT世界也有很多几乎不变的知识,他们晦涩而重要,默默的将程序员划分....

ShuSheng007的程序人生 2万+

设计模式

设计模式简介 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性...

ThinkWon的博客 1万+

23种设计模式(GOF)

设计模式(GOF)分为三种类型,共23类。 一、创建型模式: 单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。 二、结构型模式: 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 三、行为型模式: 模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。 目录 1、单例模式 (Singleton) 2、原型模式 (Prototype) 3...

m0_61008247的博客 6097

GOF23种设计模式

设计模式

C/C++ 1340

GOF 面向对象 23 种设计模式详解

GOF 设计模式 笔记总结自 GOF 的 《Design Patterns - Elements of Reusable Object-Oriented Software》,Erich Gamma、Richard Helm、Ralph Johnson 、John Vlissides 4 位作者基于基于面向对象设计原则提出了一下的基本观点: 对接口编程而非对实现编程; 优先使用

Al_assad的博客 4348

设计模式 GOF23 行为型

行为型设计模式分为: 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘模式 观察者模式 状态模式 策略模式 模板模式 访问者模式

IT老吴的博客 417

Java设计模式:23种设计模式全面解析(超级详细)

设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 1995 年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,人称「GoF设计模式」。 ...

wenjianfeng的专栏 5970

23种GoF设计模式

GoF(Gang of Four)设计模式是由四位计算机科学家 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著的书籍《Design Patterns: Elements of Reusable Object-Oriented Software》中提出的设计模式

笔记 1371
上一篇: Android应用开发之图片拖拉和多点触摸缩放
下一篇: GoF23种设计模式之行为型模式之解释器模式
innovation
博客等级 码龄14年 251粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值