Theo câu trả lời được chấp nhận về "Cơ sở lý luận để thích các biến cục bộ hơn các biến thể hiện? ", Các biến nên sống trong phạm vi nhỏ nhất có thể.
Đơn giản hóa vấn đề theo cách hiểu của tôi, điều đó có nghĩa là chúng ta nên cấu trúc lại loại mã này:
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();
}
}
vào một cái gì đó như thế này:
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();
}
}
nhưng theo "tinh thần" của "các biến nên sống trong phạm vi nhỏ nhất có thể", "không bao giờ có biến" có phạm vi nhỏ hơn "có biến" không? Vì vậy, tôi nghĩ rằng phiên bản trên nên được cấu trúc lại:
public class Main {
public ABResult getResult() {
return ABFactory.mix(getA(), getB());
}
private getA() {
return SomeFactory.getA();
}
private getB() {
return SomeFactory.getB();
}
}
do đó getResult()
không có bất kỳ biến cục bộ nào cả. Điều đó có đúng không?
final
từ khóa hay không.