- ये तीनों पैटर्न एक दूसरे से कैसे अलग हैं?
फैक्टरी: ग्राहक के लिए तात्कालिकता तर्क को उजागर किए बिना वस्तुओं को बनाता है।
फैक्ट्री मेथड: किसी ऑब्जेक्ट को बनाने के लिए एक इंटरफेस को परिभाषित करें, लेकिन उपवर्गों को यह तय करने दें कि कौन सी क्लास को तत्काल करना है। फैक्टरी विधि उपवर्गों के लिए एक वर्ग आक्षेप को स्थगित करने देती है
सार फैक्टरी: संबंधित या आश्रित वस्तुओं के परिवारों को उनके ठोस वर्गों को निर्दिष्ट किए बिना बनाने के लिए एक इंटरफ़ेस प्रदान करता है।
एब्सट्रैक्ट पैटर्न किसी अन्य वर्ग को ऑब्जेक्ट बनाने की जिम्मेदारी सौंपने के लिए कंपोजीशन पैटर्न का उपयोग करता है जबकि फैक्ट्री मेथड डिजाइन पैटर्न इनहेरिटेंस का उपयोग करता है और ऑब्जेक्ट बनाने के लिए व्युत्पन्न क्लास या सब क्लास पर निर्भर करता है।
- कब कौन सा उपयोग करें?
फैक्टरी: क्लाइंट को बस एक क्लास की जरूरत होती है और उसे इस बात की परवाह नहीं होती है कि उसे कौन सा ठोस कार्यान्वयन मिल रहा है।
फैक्ट्री विधि: क्लाइंट को यह पता नहीं होता है कि रनटाइम बनाने के लिए किन ठोस वर्गों की आवश्यकता होगी, लेकिन सिर्फ एक वर्ग प्राप्त करना चाहता है जो काम करेगा।
AbstactFactory: जब आपके सिस्टम को उत्पादों के कई परिवार बनाने होते हैं या आप कार्यान्वयन विवरणों को उजागर किए बिना उत्पादों का एक पुस्तकालय प्रदान करना चाहते हैं।
सार फैक्ट्री कक्षाएं अक्सर फैक्ट्री विधि के साथ लागू की जाती हैं। फैक्ट्री मेथड्स को आमतौर पर टेम्प्लेट मेथड के भीतर कहा जाता है।
- और यदि संभव हो तो, इन पैटर्न से संबंधित कोई जावा उदाहरण?
फैक्टरी और FactoryMethod
आशय:
एक ऑब्जेक्ट बनाने के लिए एक इंटरफ़ेस को परिभाषित करें, लेकिन उप-वर्गों को यह तय करने दें कि किस क्लास को तत्काल करना है। फैक्ट्री मेथड एक क्लास को सब क्लास में तत्काल डिफरेंशन देता है।
यूएमएल आरेख :
उत्पाद: यह उन फैक्टर्स के इंटरफ़ेस को परिभाषित करता है जो फ़ैक्टरी विधि बनाती है।
कंक्रीटप्रोडक्ट: इम्प्लीमेंट्स उत्पाद इंटरफ़ेस
निर्माता: फैक्टरी विधि की घोषणा करता है
ConcreateCreator: एक कंक्रीटप्रोडक्ट की आवृत्ति वापस करने के लिए फ़ैक्टरी विधि लागू करता है
समस्या कथन: फ़ैक्टरी विधियों का उपयोग करके खेलों का एक कारखाना बनाएँ, जो खेल इंटरफ़ेस को परिभाषित करता है।
सांकेतिक टुकड़ा:
फैक्टरी पैटर्न। कारखाने के तरीकों का उपयोग कब करें?
अन्य रचनात्मक पैटर्न के साथ तुलना:
डिज़ाइनर फैक्ट्री मेथड (कम जटिल, अधिक अनुकूलन योग्य, उपवर्ग प्रोलिफ़रेट) का उपयोग करके शुरू होता है और डिज़ाइनर पता चलता है जहाँ डिज़ाइनर को अधिक लचीलेपन की आवश्यकता होती है, वहां एब्सट्रैक्ट फ़ैक्टरी, प्रोटोटाइप या बिल्डर (अधिक लचीला, अधिक जटिल) की ओर विकसित होता है।
एब्सट्रैक्ट फैक्ट्री क्लासेस को अक्सर फैक्ट्री मेथड्स के साथ लागू किया जाता है , लेकिन उन्हें प्रोटोटाइप का उपयोग करके भी लागू किया जा सकता है
आगे पढ़ने के लिए संदर्भ: सोर्सिंग डिजाइन-पैटर्न