java 管道设计_设计模式——管道模式

本文介绍了Java中的管道设计模式,它通过Pipeline、Valve和Context组成,用于抽象多步骤业务流程。管道模式具有顺序执行和良好的扩展性特点,便于业务需求变化时调整流程。文章详细阐述了Pipeline、Valve、Context的实现,并提供了具体的示例代码展示其工作原理。
摘要由CSDN通过智能技术生成

管道(执行流)模型由Pipeline(管道)/ Valve(阀门)/ Context(上下文) 组成

概念

我们把特定的业务,比如订单业务中的临时订单、订单提交以及订单支付等,抽象成一组Pipeline(管道);

拿生成临时订单业务来说,执行流程包括:1参数校验->2业务数据校验->3业务处理,这里的三段子流程是严格按照顺序执行的,我们用Valve(阀门)定义它们,每一个子流程即一个Valve;

在管道模式中,我们要处理的对象是一组业务数据,即概念中的Context(上下文),Context贯穿于整个执行流程。

意义

管道模式是多步流程业务很好的抽象,内部基于单链表实现顺序执行,具有强顺序性;

管道模式对于整体流程的拆分,使得业务的扩展性大大增强,当业务需求发生变化,只需要确定需要加入/删除的子流程位置即可,就像从单链表中增加/删除一个节点。

实现

模块结构

dad07d115c70e3d9fb1a6ca4128e927a.png

PipeLineContext 实现管道上下文的概念,内部记录一个所处阀门在管道中的索引;使用HashMap存储业务数据,用户流程进行时的数据传递。

public class PipeLineContext {

private PipeLineContext() {

}

@Getter

private int index;

@Getter

private Map context;

public PipeLineContext(int size) {

this.index = 0;

this.context = new HashMap<>(size);

}

public void put(String key, Object value) {

context.put(key, value);

}

public void get(String key) {

context.get(key);

}

@JSONField(serialize = false)

public int getAndIncrement() {

this.in

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值