在54:53 分钟的演讲中,Rich Hickey 谈到了使用队列作为解耦依赖程序部分的一种手段。你能给我举个例子,说明如何将以下 Java 伪代码解耦以改进其设计和/或灵活性:
// Warning: Java-pseudo-code ahead
class Job {
public void doRun(A a) {
saveObjectToDatabase(a);
B b = computeB(a);
saveObjectToDatabase(b);
C c = computeC(b);
logToFile(c);
}
}
saveObjectToDatabase
andsaveObjectToDatabase
可以看作是一种有副作用的方法,而computeB
's 和computeC
' 的输出只依赖于a
.
我知道这个问题相当模糊/广泛。我想了解如何利用排队机制而不会使我的程序变得非常复杂,并且仍然确保它以正确的顺序做正确的事情。任何指向正确方向的指针都值得赞赏。