放入Callable是“正确”的逻辑是多少?

时间:2009-01-25 11:55:55

标签: java callable

我经常使用callables,而且我发现了一个令我恼火的问题:

让我们说,要运行函数foo(),首先需要进行几项检查。

你应该吗? 1.将支票作为Callable:

的一部分插入
class A implements Callable<Long> {
...
public Long call() {
    check1();
    check2();
    return (run()); 
}
  1. OR,将所有这些逻辑插入另一个类(ALogic)并使用Callable一个shell作为执行者? class A implements Callable {
    ...
    public Long call() {
    ALogic aLogic = new ALogic();
    return (aLogic.run());
    }
  2. 您认为专业人士和骗子是什么?你通常喜欢什么?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

此外,拥有一个构造的对象并且只有一个被调用的方法通常是不好的。使它成为一个静态方法(也许可以通过私有构造函数创建一个对象并运行它)。

答案 2 :(得分:0)

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