执行链java_Java中使用责任链模式

一、问题引入

在生活中,我们会遇到填写调查问卷的情况,比如中国移动推送的通话质量问卷、京东的购物体验问卷等等,这些问卷在生成之前往往会有一套复杂的逻辑,比如题目的跳转设置、不同题目之间的互斥设置、多选题的选项之间互斥设置,以及对答案的通过性判断等等。在这些背后,某些业务的实现就可以使用到本文所介绍的责任链模式,本文也将以保存用户答题作为模拟实例引入责任链模式。

二、责任链设计模式理论知识

2.1,责任链概念

顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为模式。

它的意图的是:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。主要解决的问题是:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。

从概念中我们可以知道,责任链模式的核心思想是,按照设计好的有序链条逐个自动执行每一个任务。这种设计模式在分类上属于行为设计模式。

2.2,责任链类图

73ead83b14072ef367dd68bef7eb2cc2.png

2.3,链的实现方式

责任链模式中的链,可以使用单向链表、List集合实现。个人感觉,单项链表在每个节点中包含下个节点的引用,在使用起来会比较方便,而且稳定。

三、责任链设计模式的应用

保存答题的具体场景为:先保存答题者,然后每个答题者可以回答多个问卷,所以答题者保存完成之后需要保存回答的是哪个答卷,最后保用户的答案。

我们用respondent单词表示答题者,用questionnaire表示答卷,用answer表示答案,在下面的代码实例中可根据单词的直译表示类的作用

下面将用实际的代码例子演示如何实现责任链,且默认使用的是SpringBoot框架。

首先我们创建责任链的处理类:RespondChainHandler

1 /**

2 * @Author Administrator3 * @Date 2021-02-17 15:30:014 * @Version

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值