zoukankan      html  css  js  c++  java
  • 流程设计(抽象节点法)

    如何设计一个配置灵活的流程?

    要做到以下几点

    1.节点状态、节点按钮可以动态的配置,不会影响流程的运行,可以在现有的流程中更改流程的走向

    2.节点可以对应多个按钮,即流程进入某一节点的时候可以显示多个按钮

    FlowNode

    流程节点状态,流程节点状态用于表达流程的状态

    那么NodeState和ButtonState分别代表什么意思呢?

    为什么需要两种状态?举个简单的例子,以一个外卖员接单为例,当外卖员接单后,可能会有两个按钮供他选择,受理订单和拒绝受理(假如超出了他的配送范围),假如受理订单,我们可以用“待取货”来描述NodeState,可以用“已受理”来描述ButtonState,那么对于拒绝受理,该订单将重新回到分派外卖员的节点状态,所以用“待分派外卖员”和“拒绝受理”来描述这一状态,但是对于“待分派外卖员”,这个节点可能同时存在另一个不同的状态,“待分派外卖员”-“商家已接单”,所以这就可以完全区别两种状态了,否则我们无法分清“待分派外卖员”到底是一种什么具体的状态。这两种状态分别对应了一个分派外卖员的按钮。

    FlowButton

    流程按钮

    为什么会有NextNode

    我们认为当按钮结束后,订单一定会进入到一种状态,而状态又是和按钮对应的,所以就巧妙地形成了一个流程的闭环,环环相扣,十分巧妙。这也是流程设计的核心思想,根据按钮的行为将节点状态抽象出来,抽象出来的节点只要拥有属于他自己的按钮,并且按钮可以复用,就可以将流程运转起来。

    通常依赖这样的一个基本的流程框架,完全可以设计一套符合上述两点的流程出来。

  • 相关阅读:
    chapter1 Qt入门
    base64加密解密
    vue+CryptoJS+cookie实现保存账号密码
    js计时器
    Elenent ui中的表单校验规则、自定义校验规则、预验证功能
    js获取文件后缀
    js中如何将有字符串转换为数组,或将数组转换为字符串
    vue-router
    Vue项目纯前端导出word文档
    async/await
  • 原文地址:https://www.cnblogs.com/njcxwz/p/6329485.html
Copyright © 2011-2022 走看看