我正在开发一个实现跳跃点搜索算法的 Java 库。您可以调用两个公开的方法来运行搜索。一个同步的,一个返回结果的 Java Future
。
public Future<Queue<T>> findPath(T start, T goal) {
FutureTask<Queue<T>> future = new FutureTask<>(() -> findPathSync(start, goal));
future.run();
return future;
}
我想知道的是,在这种情况下,最佳做法是什么。库应该实际运行 FutureTask
并返回 Future
,还是应该返回 FutureTask
并且最终用户必须知道任务还没有真正被执行?
谢谢!
最佳答案
我不能真正代表“最佳实践”,但作为用户,如果我调用一个方法,我的默认假设是它触发了某些东西——它启动了执行——通常保留“仅构造”范式用于构建器模式或工厂。
所以上面的代码是我所期望的行为,我觉得我最常看到的,即使不是总是,即使在其他系统(即 Node.js)中也是如此
关于java - 从库返回 Java Future 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30687847/