मैं जावा 1.4 (पिछली कंपनी) से जावा 1.6 (नई कंपनी) में परिवर्तित हुआ। मैंने जो देखा है, 1.4 के मामले में अधिकांश स्वामित्व ढांचे को इंटरफेस और टेम्पलेट पैटर्न का उपयोग करके परिभाषित किया गया था, जबकि 1.6 के साथ अधिकांश ढांचे जेनरिक के आसपास परिभाषित किए गए हैं।जेनिक्स बनाम इंटरफेस
जबकि मैं अभी भी जेनरिक के आसपास पकड़ पाने की कोशिश कर रहा हूं, मेरा सवाल यह है - क्या यह सही डिजाइन दृष्टिकोण है? इंटरफेस आपके डिजाइन को अधिक लचीला/decoupled बनाते हैं। जबकि जेनेरिक, प्रकार की सुरक्षा लागू करें और आपको एक विशिष्ट प्रकार के वर्ग के आसपास पारित करने के लिए लागू करें। वास्तव में आपके कोड को डीकॉप्लिंग करने में मदद नहीं करता है। क्या ये सही है?
एक उदाहरण -
public MyWizard extends SignupWizard<SignupSection, SignupObject, SignupListener, SignupView>{
}
बजाय डिजाइन और अधिक लचीला अगर यह था होगा ..
public interface Wizardable{
public SignableSection getSection();
public SignableObject getSignableObject();
...
}
public MyWizard implements Wizardable{
....
}
कृपया अपना उदाहरण सुधारें। उदाहरण के लिए साइनअप विज़ार्ड की परिभाषा क्या है? ढांचे के कुछ ठोस उदाहरण दें जहां जेनेरिक के बारे में आप जिस तरह से बात करते हैं उसका उपयोग किया जाता है। "जेनेरिक बनाम इंटरफेस" का सवाल मुझे ज्यादा समझ में नहीं आता है, क्योंकि अक्सर उनमें से दोनों का एक साथ उपयोग किया जाता है। "एनोटेशन बनाम इंटरफेस" अधिक समझ में आता है। –
ऐसा लगता है कि मैं सी ++ में जावा की अपेक्षा करता हूं। इंटरफेस के बजाय –