如何看待一个东西贯穿整个工作流,工作流中的每一步都可以读取或者更新这个东西

2021-04-17-如何看待一个东西贯穿整个工作流,工作流中的每一步都可以读取或者更新这个东西?

线程安全:

如果这个工作流是单线程的,这样做是可以的

但如果是多线程的,这样需要频繁地锁定和解锁,对于性能不好,更好的做法是https://lotabout.me/books/Java-Concurrency/Best-Practice/index.html里面说的封闭,不可变之类的思路,锁是最后的不得已而为之的方法

软件设计:

每一步更新这个东西,需要每一步都能看到这个东西。那么这就意味着每一步都和这个东西耦合。对于系统设计来说,模块间的耦合不是个好东西

另一个思路是,每一步看到的不是这个东西,而是这一步希望看到的那一部分数据

Powered by Jekyll and Theme by solid

本站总访问量