如何看待一个东西贯穿整个工作流,工作流中的每一步都可以读取或者更新这个东西
2021-04-17-如何看待一个东西贯穿整个工作流,工作流中的每一步都可以读取或者更新这个东西?
线程安全:
如果这个工作流是单线程的,这样做是可以的
但如果是多线程的,这样需要频繁地锁定和解锁,对于性能不好,更好的做法是https://lotabout.me/books/Java-Concurrency/Best-Practice/index.html里面说的封闭,不可变之类的思路,锁是最后的不得已而为之的方法
软件设计:
每一步更新这个东西,需要每一步都能看到这个东西。那么这就意味着每一步都和这个东西耦合。对于系统设计来说,模块间的耦合不是个好东西
另一个思路是,每一步看到的不是这个东西,而是这一步希望看到的那一部分数据