绘制状态图的细节

一 状态图的布局样式

1 主状态从上到下画

能让人清晰的看到一条主线,进而理解核心内容。次要状态可放在主状态的右侧,如果右侧已放满,可以放在左侧。

2 线条和文字颜色统一

建议用蓝色或灰色。统一颜色的好处是,便于产品经理快速维护文档。但是,不同角色的操作可以用不同的颜色。这样可以让读者快速知道不同角色会做什么。比如,用户的操作用黑色,审核人员的操作用红色。

3 状态的文字表述

有两点需要注意:

a 状态用“主语+状态”表述

好处是可以强调在表达哪个对象的状态。同时主语占一行,状态另占一行,这样行文更加清晰。

b 状态用两个短语表述

比如,商品已经提交,就等于商品商品等待审核,此时可以用两个短语描述一个状态,即“已提交,待审核”。

4 进行必要的简化

完整的状态图的连线非常多,这样会导致状态图很乱,因此需要简化,在简化时需要注意以下两点。

a 线条合并

按照规定,如果两个状态可互相转移,如从“已通过审核”状态转移到“未通过审核”状态,从“未通过审核”状态也可以转移到“已通过审核”状态,就需要画两条单向箭头线。此时就可以简化,即在这两个状态之间绘制一条双向箭头线。

b 多用备注

任何状态都可以转移到“已删除”状态,这样将导致连续很多,因此可以在“已删除”状态旁边加备注,说明在什么情况下可以删除该对象。

二 状态的进阶设计

1 按显示不同确定状态

对状态来说,到底如何确定,没有严格的限制。其基本逻辑是,如果量中状态的显示有明显区别,操作有较大不同,那么这两种状态就不应合并。

2 “编辑中”状态

通常在商品管理或文章管理中,“编辑中”状态不应画到状态图中。

只要打开一个商品,该商品就处于“编辑中”或“审核中”等状态。要把这些状态画在状态图中,显然不合适,也没有必要。

3 重新提交时的状态

一个已上架的商品仍然可能需要重新编辑信息。这些信息包括商品的描述、价格或库存等。其中,在商家修改价格或库存后,商品通常不需要再审核,还是处于“已上架”状态。如果商家修了描述,商品就需要再审核,确保重新编辑的信息符合平台规定。按照有的人理解,此时商品就进入“待审核”状态。

然而,这样做会产生一个问题,即商品在“待审核”状态下,是否能被前台用户看到?按照现有逻辑,对于正在审核的商品,用户是不能看到的。但这样做不合理,更合理的处理方式是在平台审核新的商品信息时,要让用户能看到商品旧的信息。在审核人员审核通过后,新的商品信息就会覆盖旧的商品信息。这种处理方式才合理。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
编程的水平,反应的不仅仅是编程技术,也反映管理水平,也就是对资源的调度能力,我把编程当成是一种科学的资源调度活动。 1、本图形系统采用多任务并行处理模式进行架构,用层次模型数据结构来协调不同任务的运行状态以避免相互冲突。 2、程序启动时,首先进行程序初始化,主要是进行程序配置,如果有用户自定义配置信息,就将其加载,否则就载入默认配置。 3、程序初始化完成后,就将程序的运行控制权交由程序的消息循环机制。消息主要来源于用户对程序支持的设备的操作,由操作系统提供或由程序任务自行发送,用钩子程序获取。主要反是映上用户的界面上。消息可以是操作系统预定义的,也可以是程序自定义的。不支持用户自定义消息。 4、当程序获取到消息后,就将消息交由消息处理方案中心进行集中处理。 5、消息处理方案中心在收到消息后,先查找程序配置数据和流程控制数据,主要是确定以下三点: (1)是否启动新的任务; (2)是否继续原有的任务; (3)是否将收到的消息续续传递下去。 6、如果消息处理方案中心启动了新的程序任务或续续了原来的任务,这个程序任务会去首先会去查找程序配置数据和流程控制数据,以确保程序按用户的要求进行执行,并有可能修改这些控制数据。 7、程序任务在运行的过程中,会根据上述取得的信息,进行相应的数据处理,调用相应的子程序功能,完成用户的特定操作。程序任务的主要工作式式,举例如下: (1)设置程序的运行控制状态,以便程序再次收到消息时能够正确响应。 (2)调用内存中的任务数据进行运算,将运算结果进行保存或显示给用户。 (3)生成临时辅助绘图数据并进行图形运算,将结果显示给用户以便控制。 (4)将具体的操作过程和单个任务的数据以历史记录保存在内存中,以提供撤消重做功能或操作演示功能。 (5)直接调用其它任务模块,以完成特定的用途。也可以用发送消息的方式,达到间接调用其它任务的目的。 (6)将内存中的数据格式进行转化,保存在外部文件中,或将外部文件中的数据还原为内存中的结构数据。 何为一个任务?一个任务从程序代码上来看,它总是从一个子程序的调用开始的,举例说明如下: .....任务:在板上绘制一段直线; .....启动任务方式:用户通过鼠标单击某子菜单项或某工具条或用键盘录入了相应的命令指令; .....执行条件:操作系统会将相应的用户操作以消息方式发送到窗口过程,程序的查检机制也判断在当前状态下允许执行这个命令,如果允许执行,检查当前系统是否有其它绘图命令,如果有就结束它,清除由它产生的相应程序数据,如果绘图任务处于空闲状态,就由消息处理中心启动绘制直线任务.如果在执行过程中要设置或禁止某种用户操作,就将其控制信息注册到流程控制信息结构体中,如果有一项操作失败,就不能启动任务. .....任务执行过程: ..消息处理中心启动绘制直线任务时,此任务处于初始化状态,绘直线任务的流程控制信息为0,首次调用绘直线任务. ..绘直线任务在首次运行时,在提示行输出提示信息:"请单击板,得到直线第一点";然后置流程控制信息中的绘直线任务的流程控制信息为1. ..用户晌应程序提示,在板上点击一下,操作系统将点击消息传给窗口过程,程序钩子获得该消息,将该消息传递给消息处理中心.消息处理中心检查发现当前任务中有绘直线任务,并且该消息能被绘直线任务接收,于是就将该消息传递给绘直线任务,其方式是再次运行绘直线任务,并将消息值传递给它. ..绘直线任务收到消息,并且从流程控制信息中查得控制信息为1,于是,就将该板坐标点转化为用户模型空间的数据,将坐标数据保存在当前任务数据的相应结构体中,绘直线任务将流程控制信息中的数据置为2.然后在提示行输出提示信息:"请单击板,得到直线第二点". ..当用户在板上移动鼠标,同上面一样的方法,消息控制中心总会再次运行绘直线任务,绘直线任务处于第三种运行状态,每次移动鼠标时它都会处于这种状态,直到绘直线命令再次收到鼠标单击板的命令.在绘直线任务处于第三状态时,它就会以前面的第一点为基准,在板上动态出一条指向鼠标位置的直线段,这是一条临时直线. ..当用户的鼠标再次在板上单击,消息处理中心也会再次运行绘直线任务,绘直线任务检查发现流程控制信息为2并且板也被单击,就将流程控制信息改为0,并将板单击时鼠标的位置信息转化为模型空间的坐标数据,保存当前任的全部数据为历史数据,将当前直线的数据注册到结果数据中;然后将结果数据中的全部几何图形数据生成相应的板图像数据,用生成的图像数据覆盖到板上.然后在提示行输出提示信息:"绘制直线完成". ..置当前绘图命令为空闲状态,到此就全面结束了此次绘图任务_绘制一条直线. 以上为了说明清晰,没有考虑太多的细节问题,实际程序流程是另外一回事情,原理是相通的.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值