前面几篇把状态、条件边、Command、interrupt() 都接起来以后,已经能写出一条能跑的业务图了。
但图一旦开始真的解决业务问题,很快就会遇到另一种麻烦:不是功能不够,而是整张图越来越长。
比如一条内容发布流程,前面要生成草稿,中间要做几轮审核,后面还要格式整理、发布、通知。刚开始看起来只有四五个节点,过几天再回来看,已经变成十几个节点串在一起。再往后加一个「品牌审核」或者「敏感词检查」,整张图就更难读了。
这时候问题已经不是「能不能写出来」,而是「还能不能看懂,还敢不敢复用」。
子图就是拿来处理这件事的。它做的不是引入新的控制流,而是把一段已经写清楚的流程,单独拆出来,当成别的图里可以反复使用的一块模块。