2 つのクラス関連の変数を使用し、取得/作成にコストがかかるメソッドを持つクラスFoo
を取得しました。私の最初のバージョンは次のようになります。doSomething
b
c
public class Foo {
private final A a;
public Foo(A a) {
this.a = a;
}
public void doSomething() {
final B b = a.getB();
final C c = b.getC();
for (int i = 0; i < 1000; i++) {
// do something with b and c
}
}
}
したがってB
、クラス変数a
を介して最初のオブジェクト ( type ) を取得し、最初のオブジェクトを介して 2 番目のオブジェクト ( type C
) を取得します。
さて、これらの変数はクラスに関連しており、メソッドは常に1 回だけ呼び出されるため (必ずしも type のオブジェクトを作成するときではありませんFoo
)、それらをクラス変数にすることも考えました。
public class Foo {
private final A a;
private final B b;
private final C c;
public Foo(A a) {
this.a = a;
b = a.getB();
c = b.getC();
}
public void doSomething() {
for (int i = 0; i < 1000; i++) {
// do something with b and c
}
}
}
これら2つのいずれかの場合、どのバージョンを使用するかわかりません。これらの 2 つの変数は、既存のクラス variable から取得できるため、クラス メンバーを作成するのはどうも気が進まないのですa
。ただし、メソッド IMO の可読性が向上します。