流程图:用于表示完成某件事情中的各个活动过程,其中最重要的部分是“处理 process”单元;
顺序图:用于表示程序执行时各个对象的交互过程(这些对象会按调用时间顺序排序);
状态图:描述一个特定对象的所有可能状态,以及由于各种事件的发生而引起的状态之间的转移,其最主要的就是程序目前的状态,每一个状态总结记录程序由开始到目前所有接到的输入。
这么描述可能还不够清晰,下面我将从流程图VS顺序图,以及流程图VS状态图,对这三者的优势和局限性作进一步解读:
流程图 VS 顺序图
这是push流程的一张顺序图:
它直观地反应了push程序执行的过程,各个对象之间的调用顺序是怎样的一目了然。
这还属于比较简单的顺序图。如果是下面这类复杂的,甚至一个方法里面有很多分支语句的,那用顺序图肯定是很不好画了。
因此,一般情况下分析程序中的方法用流程图更好,它可以很好的反应各种复杂的逻辑。
流程图 VS 状态图
这是表示电梯运行状态的一张状态图: