首页 > 编程语言 >编程设计模式-责任链设计模式

编程设计模式-责任链设计模式

时间:2024-03-21 11:00:21浏览次数:34  
标签:请求 角色 处理 编程设计 责任 对象 设计模式

责任链设计模式概述:

为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。

责任链模式的主要角色如下:

抽象处理者(Handler)角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。

具体处理者(Concrete Handler)角色:实现抽象处理者的处理方法,判断是否处理本次请求,如果可以处理请求则处理,否则将该请求转给它的后继者。

客户类(Client)角色:创建处理链,并向链头的具体处理对象提交请求,它不关心处理细节和请求的传递过程。

责任链模式的优缺点:

优点:

  • 降低了对象间的耦合度
  • 增强了系统的可扩展性
  • 增强了给对象指派责任的灵活性
  • 责任链简化了对象之间的连接
  • 责任分担

缺点:

对比较长的责任链,请求的处理可能涉及多个处理对象,系统性能将受到一定的影响。

职责链建立的合理性要靠客户端来保证,增加了客户端的复杂性可能会由于职责链的错误设置而导致系统出错,如可能会造成循环调用。

标签:请求,角色,处理,编程设计,责任,对象,设计模式
From: https://blog.csdn.net/ly_7956/article/details/136902275

相关文章

  • 设计模式|工厂模式
    文章目录1.工厂模式的三种实现2.简单工厂模式和工厂方法模式示例3.抽象工厂模式示例4.工厂模式与多态的关系5.工程模式与策略模式的关系6.面试中可能遇到的问题6.1**工厂模式的概念是什么?**6.2**工厂模式解决了什么问题?**6.3**工厂模式的优点是什么?**6.4**工厂......
  • Python设计模式,可以采用单例模式+工厂方法吗?
    背景:今天看卡尔的设计模式,突然间,觉得可以把单例模式+工厂方法结合起来。不知道能不能行,咨询下AI,觉得可以。就mark一下问题:python中我有一个项目,有4个场景,我想创建一个基类,然后写4个具体实现的工厂,并继承这个基类,我为了防止这个基类创建多次,我是不是可以用单例模式?也就说我可......
  • 设计模式(行为型设计模式——解释器模式)
    设计模式(行为型设计模式——解释器模式)解释器模式基本定义给分析对象定义一个语言,并定义该语言的文法表示,设计一个解析器来解释语言中的句子。模式结构AbstractExpression:抽象表达式。声明一个抽象的解释操作,该接口为抽象语法树中所有的节点共享。TerminalExpres......
  • 设计模式(行为型设计模式——命令模式)
    设计模式(行为型设计模式——命令模式)命令模式基本定义将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。模式结构Command:抽象命令类ConcreteCommand:具体命......
  • 组合设计模式Java代码快速开始
    组合模式介绍使用组合模式可以让用户可以使用统一的方式处理整个树形结构的个别对象和组合对象,从而简化客户端的操作。并且扩展性好当需要处理的对象是树形结构时可以考虑使用组合模式。节点和叶子节点存在很大差异的情况下不建议使用组合模式。代码举例不使用组合模式举例......
  • 设计模式学习纪要(三)
    (五)代理模式(结构型模式)代理模式定义代理模式就是为一个对象(被代理对象)提供一个代理对象,并且通过代理对象控制对原来被代理对象的访问。可以简单理解为通过代理对象访问目标对象。这样做最大的好处就是可以在目标对象实现的基础上,增强额外的功能,起到扩展目标对象的效果。代......
  • UI自动化测试中公认最佳的设计模式-POM
    p>什么是POM?POM是PageObjectModule(页面对象模式)的缩写,其目的是为了WebUI测试创建对象库。在这种模式下,应用涉及的每一个页面应该定义为一个单独的类。类中应该包含此页面上的页面元素对象和处理这些元素对象所需要的方法等。将流程所关联的页面作为对象,将对象串联起来,形成一个个......
  • 设计模式(行为型设计模式——职责链模式)
    设计模式(行为型设计模式——职责链模式)职责链模式基本定义为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。在这里客户端和处理者都没有......
  • NodeJS 中的设计模式
    Node.js是一个流行的JavaScript运行时,允许开发者使用事件驱动、非阻塞I/O模型构建可扩展的网络应用程序。和任何复杂的框架一样,Node.js应用程序可以从使用成熟的设计模式中受益,以促进代码重用、可维护性和健壮性。本文将概述一些对Node.js开发非常有用的设计模式。......
  • 设计模式学习(一)单例模式的几种实现方式
    目录前言饿汉式懒汉式懒汉式DCLP局部静态式(Meyers'Singleton)单例模板参考文章前言单例模式,其核心目标是确保在程序运行的过程中,有且只有存在一个实例才能保证他们的逻辑正确性以及良好的效率。因此单例模式的实现思路就是确保一个类有且只有一个实例,并提供一个该实例的全局访问......