# 《拼团交易平台系统》第2-10节:责任链抽象模板设计

作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/Ao3ox (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

大家好,我是小傅哥。

做开发了这么久,其实业务类的开发大部分都是串联流程,其实复杂度并不高。但之所以最后非常难理解,是写的人,驾驭能力不强,把工程写的越来越难以理解。

而如果想让工程实现的逻辑好理解,就要做好解耦设计。而这些解耦的流程大部分是具有通用性的,所以我们可以设计出能解决大部分通用业务场景的共性模型结构。

在之前小傅哥就带着大家设计了一个规则树的模型,本节我们借着项目的开发在设计一款通用的责任链模型结构。

# 一、本章诉求

在拼团交易的下单锁定优惠的过程中,以及后续的流程,都会有简单的规则串联。所以,我们先来提前做好通用的责任链模型结构,便于后续使用。

本节会涉及到链表的基础数据结构知识,可以提前补充学习;https://bugstack.cn/md/algorithm/data-structures/2022-07-22-linked-list.html (opens new window)

# 二、模型设计

责任链是一种简单的单链路结构,在工程中会有多个这样的单链,为了可以让不同的场景都能创建出自己的链,则需要解耦责任链的链路和执行,再有执行器处理。在本次实现中小傅哥会给大家体统两种责任链,让大家对照学习。设计如图;

  • 如图,这是一种多实例对象责任链的设计结构,会使用到如 Java JDK 源码中 Link 的方式填写链路,之后再有业务链路处理链路执行。而每一个链路都会被填充一个逻辑处理器的实现类(ILogicHandler)来处理具体的业务。
  • 那么,这样就很好的扩展了各种链路的使用诉求。我们可以结合代码来学习。