Menurut jawaban yang diterima pada " Dasar Pemikiran untuk memilih variabel lokal daripada variabel instan? ", Variabel harus hidup dalam ruang lingkup sekecil mungkin.
Sederhanakan masalahnya menjadi interpretasi saya, artinya kita harus memperbaiki kode semacam ini:
public class Main {
private A a;
private B b;
public ABResult getResult() {
getA();
getB();
return ABFactory.mix(a, b);
}
private getA() {
a = SomeFactory.getA();
}
private getB() {
b = SomeFactory.getB();
}
}
menjadi sesuatu seperti ini:
public class Main {
public ABResult getResult() {
A a = getA();
B b = getB();
return ABFactory.mix(a, b);
}
private getA() {
return SomeFactory.getA();
}
private getB() {
return SomeFactory.getB();
}
}
tetapi menurut "semangat" dari "variabel harus hidup dalam ruang lingkup sekecil mungkin", bukankah "tidak pernah memiliki variabel" memiliki ruang lingkup yang lebih kecil daripada "memiliki variabel"? Jadi saya pikir versi di atas harus di refactored:
public class Main {
public ABResult getResult() {
return ABFactory.mix(getA(), getB());
}
private getA() {
return SomeFactory.getA();
}
private getB() {
return SomeFactory.getB();
}
}
sehingga getResult()
tidak memiliki variabel lokal sama sekali. Benarkah?
final
kata kunci atau tidak.