हम फ़ैक्टरी के साथ-साथ कमांड पैटर्न को भी लागू करके कुछ डिज़ाइन समस्याओं को हल कर सकते हैं। तो, प्रदर्शन के अनुसार कौन सा बेहतर है?
2 जवाब
यह देखते हुए कि कुछ स्थितियां हैं जहां दोनों लागू होते हैं - और कोई भी वास्तव में दिमाग में नहीं आता है - मुझे लगता है कि न तो "बेहतर" है; सबसे अच्छा समाधान समस्या, समग्र प्रणाली, टीम इत्यादि पर निर्भर करता है। यदि एक "बेहतर" था तो दूसरे को आसानी से त्याग दिया जा सकता था!
मुझे यकीन नहीं है कि आप फैक्ट्री और कमांड पैटर्न दोनों से कुछ समस्याओं को कैसे हल कर सकते हैं। वे पूरी तरह से विभिन्न प्रकार की समस्या का समाधान करते हैं।
एब्सट्रैक्ट फैक्ट्री वस्तुओं के निर्माण को इस तरह से संभालती है कि आप उत्पादों के परिवारों के बीच आसानी से स्विच कर सकते हैं और आप वस्तुओं की स्थिरता को लागू कर सकते हैं (अर्थात विभिन्न उत्पाद परिवारों को दुर्घटना से न मिलाएं)। यहां तक कि अगर केवल एक ही उत्पाद परिवार है, तो यह एक लचीली प्रणाली बनाता है जहां बनाई गई वस्तुओं को प्रबंधित करना आसान होता है।
फैक्ट्री मेथड ऑब्जेक्ट के निर्माण को सबक्लास में टाल देता है क्योंकि बेस क्लास को इस बात का ज्ञान नहीं होता है कि किस कंक्रीट क्लास को इंस्टेंट करना है। यहां बेस क्लास जानता है कि ऑब्जेक्ट कब बनाना है, लेकिन यह नहीं पता कि कौन सी ठोस वस्तु बनाना है।
और कमांड का उपयोग एक अनुरोध को इनकैप्सुलेट करने के लिए किया जाता है ताकि आप अन्य वस्तुओं की तरह एक अनुरोध को संभाल सकें, उदाहरण के लिए किसी अन्य विधि/वस्तु के पैरामीटर के रूप में अनुरोध पास करें, कतार अनुरोध, अनुरोध का पुन: उपयोग आदि। यह वस्तुओं के निर्माण से निपटता नहीं है .
जब तक मैं बहुत गलत नहीं हूं, वे अलग-अलग पैटर्न हैं जो अलग-अलग समस्याओं पर हमला करते हैं। आप GoF द्वारा डिज़ाइन पैटर्न और हेड फर्स्ट डिज़ाइन पैटर्स।
संबंधित सवाल
नए सवाल
design-patterns
सॉफ़्टवेयर डिज़ाइन में आमतौर पर होने वाली समस्या के लिए एक डिज़ाइन पैटर्न एक सामान्य पुन: प्रयोज्य समाधान है। डिज़ाइन-पैटर्न के कार्यान्वयन में समस्या होने पर प्रश्नों के लिए इस टैग का उपयोग करें। कृपया इस टैग का उपयोग टेक्स्ट पैटर्न मिलान के प्रश्नों पर न करें। कार्यान्वयन पर इस टैग का उपयोग करते समय भारी प्रश्न - कोड भाषा को लागू करने के लिए टैग किया गया है।