" উদাহরণের ভেরিয়েবলের চেয়ে স্থানীয় ভেরিয়েবলগুলিকে প্রাধান্য দেওয়ার পক্ষে যুক্তি? " -এ গৃহীত উত্তরের মতে , ভেরিয়েবলগুলি সম্ভব ক্ষুদ্রতম স্কোপে বাস করা উচিত।
সমস্যাটিকে আমার ব্যাখ্যায় সরল করুন, এর অর্থ আমাদের এই ধরণের কোডটি রিফ্যাক্টর করা উচিত:
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
কীওয়ার্ডটি ব্যবহার করা উচিত তবে না।