Відповідно до прийнятої відповіді на тему " Обгрунтування переваги локальних змінних перед змінними екземпляра? ", Змінні повинні жити в найменшому обсязі.
Спростіть проблему в моїй інтерпретації, це означає, що ми повинні переробити такий код:
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();
}
}
у щось подібне:
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();
}
}
але згідно "духу" змінні повинні жити в найменшій області застосування ", чи не" ніколи не буде змінних "мати менший обсяг, ніж" мати змінні "? Тому я вважаю, що версію, яку було зазначено вище, слід відновити:
public class Main {
public ABResult getResult() {
return ABFactory.mix(getA(), getB());
}
private getA() {
return SomeFactory.getA();
}
private getB() {
return SomeFactory.getB();
}
}
так що getResult()
взагалі немає локальних змінних. Це правда?
final
ключове слово чи ні.