如何严格的控制功能的步骤

问题描述

描述:最近在开发中遇到这个问题,完成一个功能需要几步操作,每一步操作都必须按流程来,不能跳过操作,
比如完成 a 功能有 1, 2, 3 三个步骤,我必须按 1, 2, 3 步骤,不能跳过,或交换顺序我该如何做?

自己尝试过哪些方法

我想的是将每一个接口的url 持久化到关系型数据库,并为每一个url 赋值一个流程编号,当前的流程也持久化到本地,每次调用接口时先进行查询确定该接口是那个一个流程和当前流程的关系

希望能够给我一个提供一个更加有效的方式

个人感觉我的方式不是很好,希望能够提出更加有效的方式。谢谢

阅读 5.5k
3 个回答

有点儿 Workflow 的那个意思了,你可以自己搜一下“工作流引擎”了解一下。

当然了这个最后还得看你的需求,如果你最后要的没那么复杂,大可不必杀鸡用牛刀。

我觉得你要抓住你这个功能(任务、过程)的核心目的,为什么要产生那么强的顺序?

  1. 是否可以把3步合成为1步,因为这样是在一个步骤中,顺序可以方便的严格控制。
  2. 如果多个步骤不能合并,则应该用一个统一的ID去标识整个功能(任务),并在对应位置记录当前完成状态,对应子步骤定义依赖(只需要定义唯一前置即可),这样任何进入的任务都可以严格按步骤。比如功能是完成步骤3,初始化时是已完成步骤0,步骤3的启动条件是已经完成步骤2,步骤2的启动条件是已经完成步骤1,而步骤1的是已经完成步骤0。这样每次要完成下一步时,无论如何,都可以逻辑到正确的下一步,直至完成最终步骤。

做个简易的任务系统就好了,
当用户完成步骤1时,创建任务,并设置任务进度为(1/3)
尝试进行步骤2时检查任务是否存在且任务进度是否是(1/3),存在则完成功能并更新任务进度
尝试进行步骤3时检查任务是否存在且任务进度是否是(2/3),存在则完成功能并更新任务进度

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
项目管理
子站问答
访问
宣传栏