流程图:用于表示完成某件事情中的各个活动过程,其中最重要的部分是“处理 process”单元;
顺序图:用于表示程序执行时各个对象的交互过程(这些对象会按调用时间顺序排序);
状态图:描述一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态之间的转移,其最主要的就是程序目前的状态,每一个状态总结记录程序由开始到目前所有接到的输入。
这么描述可能还不够清晰,下面我将从流程图VS顺序图,以及流程图VS状态图,对这三者的优势和局限性作进一步解读:
这是push流程的一张顺序图:
它直观地反应了push程序执行的过程,各个对象之间的调用顺序是怎样的一目了然。
这还属于比较简单的顺序图。如果是下面这类复杂的,甚至一个方法里面有很多分支语句的,那用顺序图肯定是很不好画了。
因此,一般情况下分析程序中的方法用流程图更好,它可以很好的反应各种复杂的逻辑。
这是表示电梯运行状态的一张状态图:
如果用流程图来表示上述状态图,就需要做的处理单元比较多,这种情况下状态图明显在结构上要比流程图要更简单。
流程图和状态图的差别在于,流程图更在意动作是如何完成的,状态图更重视动作的完成,相较不在意是哪一个程序完成的。
因此,当状态图中某一个状态下少考虑了哪一个输入事件,我们可以很快地检查出来,但如果在流程图上,我们就无法分辨了。
因此,状态图比较适合对象导向的程序,流程图则比较适合描述程序导向或是数据处理的程序。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!