नोट: प्रश्न पोस्ट के अंत में हैं।
मैंने एब्सट्रैक्ट फैक्ट्री बनाम फैक्ट्री मेथड के बारे में अन्य स्टैकओवरफ्लो थ्रेड्स पढ़े हैं । मैं प्रत्येक पैटर्न के इरादे को समझता हूं। हालांकि, मैं परिभाषा पर स्पष्ट नहीं हूं।
फैक्ट्री मेथड एक ऑब्जेक्ट बनाने के लिए एक इंटरफ़ेस को परिभाषित करता है, लेकिन उपवर्गों को यह तय करने की अनुमति देता है कि उनमें से कौन सा इंस्टेंट करना है। एक कारखाना विधि कक्षाओं को उपवर्गों में तात्कालिक स्थगित करने देता है।
इसके विपरीत, एब्सट्रैक्ट फैक्ट्री अपने ठोस वर्गों को निर्दिष्ट किए बिना संबंधित या आश्रित वस्तुओं के परिवारों को बनाने के लिए एक इंटरफ़ेस प्रदान करती है।
सार फैक्टरी बहुत के समान दिखता है फैक्टरी विधि । मैंने अपनी बात को स्पष्ट करने के लिए कुछ यूएमएल कक्षाएं तैयार की हैं।
ध्यान दें:
- आरेख www.yuml.com से हैं इसलिए वे पूरी तरह से उन्मुख नहीं हैं। लेकिन इसकी एक मुफ्त सेवा है :)।
- आरेख सही नहीं हो सकते हैं। मैं अभी भी GoF डिज़ाइन पैटर्न सीख रहा हूँ ।
फैक्टरी विधि:
सार फैक्टरी (केवल 1 सदस्य):
सार फैक्टरी (अधिक सदस्य):
प्रशन:
- यदि एब्सट्रैक्ट फ़ैक्टरी में केवल एक निर्माता और एक उत्पाद है, तो क्या यह अभी भी एब्सट्रैक्ट फ़ैक्टरी पैटर्न है? (अकाल पैदा करने का एक इंटरफ़ेस)
- क्या फैक्ट्री मेथड कांक्रीट क्रिएटर इंटरफेस से बनाया जा सकता है या उसे किसी क्लास से होना चाहिए? (कक्षाएं उपवर्गों के लिए तात्कालिकता को टालती हैं)
- यदि एब्सट्रैक्ट फ़ैक्टरी में केवल एक निर्माता और एक उत्पाद हो सकता है, तो एब्सट्रैक्ट फ़ैक्टरी और फ़ैक्टरी विधि के बीच एकमात्र अंतर है कि पूर्व के लिए निर्माता एक इंटरफ़ेस है और बाद के लिए निर्माता एक वर्ग है?