首页 > 其他分享 >责任链模式

责任链模式

时间:2023-03-23 16:15:55浏览次数:33  
标签:黑箱 请求 处理 模式 责任 successor

职责链可以将请求的处理者组织成一条链,并将请求沿着链传递,如果某个处理者能够处理请求则处理,否则将该请求交由上级处理。

所以责任链模式有以下几个优点:

  • 降低耦合度,将请求的发送者和接收者解耦。反映在代码上就是不需要在类中写很多丑陋的 if….else 语句,如果用了职责链,相当于我们面对一个黑箱,只需将请求递交给其中一个处理者,然后让黑箱内部去负责传递就可以了。
  • 增加系统的灵活性,通过改变链内的成员或者调动他们的次序,允许动态地新增或者删除处理者

但是责任链模式也存在一些缺点:

  • 不能保证请求一定被成功处理
  • 系统性能将受到一定影响,并且可能会造成循环调用。
  • 可能不容易观察运行时的特征,而且在进行代码调试时不太方便,有碍于除错。

image.png

  • (1)Handler:抽象处理者,定义了一个处理请求的方法。所有的处理者都必须实现该抽象类。
  • (2)ConcreteHandler:具体处理者,处理它所负责的请求,同时也可以访问它的后继者successor,如果它能够处理该请求则处理,否则将请求传递到它的后继者successor
  • (3)Client: 客户类。

标签:黑箱,请求,处理,模式,责任,successor
From: https://www.cnblogs.com/woshi/p/17247824.html

相关文章

  • 策略模式
    在开发中经常遇到这种情况,实现某个功能有多种算法策略,我们可以根据不同环境或者条件选择不同的算法策略来完成该功能,比如查找、排序等。一种常用方式是硬编码在一个类中,......
  • 代理模式
    代理模式通过代理对象来访问真实对象,相当于对真实对象进行了封装操作。Subject:真实对象和代理对象的共同接口;Proxy:代理对象,实现了与真实对象相同的接口,所以在任何时刻都......
  • 单例模式
    单例模式可以确保系统中某个类只有一个实例,该类自行实例化并向整个系统提供这个实例的公共访问点,除了该公共访问点,不能通过其他途径访问该实例。单例模式的优点在于:系......
  • java-策略模式的简单应用
    我以我在实际项目中的应用举例场景如下:MQTT收到消息之后,根据不同的标识(operator)去进行不同的处理1.新建接口MqttCallBackService<T> publicinterfaceMqttCallBackSe......
  • PXE批量装系统之GHO恢复模式针对同型号同批次机器网络装机
    PXE批量装系统之GHO恢复模式针对同型号同批次机器网络装机1.引入预启动执行环境(PrebooteXecutionEnvironment,PXE)也被称为预执行环境,提供了一种使用[网络接口NetworkIn......
  • js策略模式 以及 es6中 ?? 的用法
    策略模式,es6中??的用法constjudge=function(status){ constmap=[ 0:'普通用户', 1:'管理员', 2:'超级管理员' ] returnmap[status]??'未知用......
  • selenium 设置chrom手机模式
      https://blog.csdn.net/qq_42623386/article/details/123391709 fromseleniumimportwebdriverfromselenium.webdriver.chrome.optionsimportOptionsfrom......
  • Linux 网络配置 ---桥接模式---最简单的方法!!!
    1.桥接模式(Bridged)VMware桥接模式,也就是将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部......
  • 策略模式与模版模式的区别与应用
    本文为博主原创,未经允许不得转载:最近在做项目的优化,由于项目在早期缺乏规划,在开发过程中,对于某一个业务的不同类型判断,增加了很多if else,代码的健壮性变得很差。所以......
  • 20.(行为型模式)java设计模式之迭代器模式
    一、什么是迭代器模式(IteratorPattern)   提供—种方法顺序访问一个聚合对象中各个元素,而又无须暴露该对象的内部实现,属于行为型模式。应用场景:   —般来说,迭......