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

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

    要做到以下几点

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

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

    FlowNode

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

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

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

    FlowButton

    流程按钮

    为什么会有NextNode

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

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

  • 相关阅读:
    七牛php-sdk使用
    七牛php-sdk使用-多媒体处理
    七牛php-sdk使用-文档处理
    七牛php-sdk使用-文件上传
    php爬取微信文章内容
    php解决微信文章图片防盗链
    python2.7编译安装升级python3并安装Scrapy
    centos7安装配置supervisor守护进程
    vuejs+thinkphp5+phpsocketIO+timer数据及时更新
    docker常用命令
  • 原文地址:https://www.cnblogs.com/njcxwz/p/6329485.html
Copyright © 2011-2022 走看看