एक (पैडेंटिक) शुरुआती जावा प्रोग्रामर के रूप में मैं जानना चाहता हूं, क्या कोड के एक सामान्य ब्लॉक को स्थानांतरित करने के लिए यह एक अच्छा अभ्यास है कि सभी सबक्लास एक अलग पर उपयोग करते हैं सुरक्षित (अंतिम) मूल वर्ग में विधि? सामान्य मानों, या सामान्य फ़िल्टरिंग एल्गोरिदम, आदि के साथ सूचियां भरने जैसे कार्य ... क्या संरक्षित स्थिर विधियों का भी उपयोग करना अच्छा है?सबक्लास के लिए सामान्य कोड रखने के लिए सुपरक्लास "संरक्षित अंतिम" विधियों का उपयोग
class A {
protected final List<String> getVariants() {...}
protected final List<String> filterResults(List<String> variants) {...}
}
class B extends A {
public List<String> doSomethingUsefull() {
List<String> commonVariants = getVariants();
...
return filterResults(commonVariants);
}
}
class C extends A {
public void doSomethingUsefull() {
List<String> commonVariants = getVariants();
...
return filterResults(commonVariants);
}
public void doMoreUsefullThings() {
List<String> commonVariants = getVariants();
...
return filterResults(commonVariants);
}
}
इसे अभी पढ़ना। – dmzkrsk
स्थैतिक इतना बुरा नहीं है ... उदाहरण के लिए, ब्लॉच कारखानों के निर्माण के लिए अपने उपयोग की सिफारिश करता है। और निश्चित रूप से, हम नहीं चाहते हैं कि Math.floor() को गणित के उदाहरण की आवश्यकता हो! यह उपयोगी हो सकता है, लेकिन निश्चित रूप से देखभाल के साथ प्रयोग किया जाता है। – PhiLho
मैं सहमत हूं, लेकिन एक शुद्धवादी ने मुझे केवल विपरीत के बारे में मनाने की कोशिश की: कि 'मठ' विधियों को स्थिर नहीं होना चाहिए! – jtoberon