3

私はかなり頻繁に callable を使用していますが、私を苛立たせる質問に出くわしました:

関数 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 以外のキーワード] インターフェイスを作成することに集中することです。通常、匿名の内部クラス (または何でも) にはそれほど多くはありませんが、転送呼び出し以上のものがあります。

また、一般に、構築されたオブジェクトに対してメソッドが 1 つだけ呼び出されるのは良くありません。それを静的メソッドにします(おそらく、プライベートコンストラクターを介してオブジェクトを作成し、それを実行する可能性があります)。

于 2009-01-25T12:36:27.170 に答える
0

私は通常、コールバックを囲んでいるクラスのプライベート メソッドに単純に転送することを好みます。これにより、匿名の内部クラスを指すだけの「this」参照がなくなりますが、これはかなり役に立ちません。

于 2009-01-25T15:40:34.060 に答える