3

我经常使用 callables ,我偶然发现了一个让我恼火的问题:

假设要运行函数 foo() ,首先需要进行一些检查。

您是否应该 1. 将支票作为 Callable 的一部分插入:

class A implements Callable<Long> {
...
public Long call() {
    check1();
    check2();
    return (run()); 
}
  1. 或者,将所有这些逻辑插入另一个类(ALogic)并使用 Callable 作为执行器的外壳? class A implements Callable {
    ...
    public Long call() {
    ALogic aLogic = new ALogic();
    return (aLogic.run());
    }

你觉得优点和缺点是什么?你通常喜欢什么?

4

3 回答 3

1

你觉得哪个更简单或更清晰?我建议你这样做。

于 2009-01-25T12:20:11.790 回答
1

在实现回调 [Java 关键字] 接口时,我的一般建议是专注于使 [非 Java 关键字] 接口适合被调用类型。匿名内部类(或其他)通常不应该有那么多,而不仅仅是转发呼叫。

此外,构造一个对象然后只调用一个方法通常是不好的。使其成为一个静态方法(可能反过来通过私有构造函数创建一个对象并运行它)。

于 2009-01-25T12:36:27.170 回答
0

我通常更喜欢简单地将回调转发到封闭类上的私有方法。这消除了简单地指向匿名内部类的“this”引用,这是非常没用的。

于 2009-01-25T15:40:34.060 回答