सी ++ में फैक्टरी पैटर्न

Si Mem Phaiktari Paitarna



फ़ैक्टरी पैटर्न सॉफ़्टवेयर डेवलपमेंट में ऑब्जेक्ट बनाने का एक तरीका है, बिना यह जाने कि वे कैसे बनाए जाते हैं। यह फ़ैक्टरी वर्ग के पीछे जटिल निर्माण तर्क को छिपाकर ऑब्जेक्ट बनाने के लिए एक सरलीकृत इंटरफ़ेस प्रदान करता है। यह डिज़ाइन पैटर्न की श्रेणी से संबंधित है जो वस्तु निर्माण तंत्र को संबोधित करता है। यह लेख C++ में फ़ैक्टरी पैटर्न को कवर करता है।

फैक्टरी पैटर्न का परिचय

एक डिज़ाइन पैटर्न सॉफ़्टवेयर डिज़ाइन में आवर्ती समस्याओं को हल करने का एक तरीका है। फ़ैक्टरी पैटर्न डिज़ाइन पैटर्न में से एक है जो लचीले और अलग-अलग तरीके से ऑब्जेक्ट बनाने में मदद करता है।

फ़ैक्टरी पैटर्न C ++ में एक रचनात्मक डिज़ाइन पैटर्न है जो ऑब्जेक्ट के वर्ग को स्पष्ट रूप से जाने बिना ऑब्जेक्ट निर्माण की अनुमति देता है। यह एक अलग फ़ैक्टरी वर्ग के भीतर जटिल वस्तु निर्माण तर्क को समाहित करने का एक तरीका प्रदान करता है। यह ऑब्जेक्ट बनाने के लिए एक सामान्य इंटरफ़ेस को परिभाषित करके किया जाता है, जहां रनटाइम पर ऑब्जेक्ट की विशिष्ट श्रेणी निर्धारित की जाती है।







किसी वस्तु को सीधे बनाने के बजाय, हम उस वस्तु का उदाहरण देने के लिए फ़ैक्टरी विधि का उपयोग करते हैं जो हम चाहते हैं। इस तरह, हम ऑब्जेक्ट बनाने में शामिल जटिल चरणों को छुपा सकते हैं और भविष्य में ऑब्जेक्ट को बदलना या संशोधित करना आसान बना सकते हैं।



फ़ैक्टरी पैटर्न का उपयोग क्यों करें?

फ़ैक्टरी पैटर्न का उपयोग करने के कई कारण हो सकते हैं। एक कारण यह है कि यह विशिष्ट वर्गों से कोड को अलग करने की अनुमति देता है। फ़ैक्टरी पद्धति का उपयोग करके, हम किसी अन्य कोड को बदले बिना आसानी से एक वर्ग को दूसरे के लिए बदल सकते हैं और इसे और अधिक कुशल बना सकते हैं।



फ़ैक्टरी पैटर्न का उपयोग करने का एक अन्य कारण यह है कि यह कोड को अधिक परीक्षण योग्य बना सकता है। फ़ैक्टरी पैटर्न हमें कृत्रिम वस्तुएँ बनाकर कोड का परीक्षण करने की अनुमति देते हैं।





C++ में फ़ैक्टरी पैटर्न का उपयोग करने के कुछ और कारण यहां दिए गए हैं:

  • फैक्ट्री मेथड पैटर्न का उपयोग तब किया जाता है जब कोई वर्ग पहले से नहीं जानता है कि उसे किन वस्तुओं को बनाने की आवश्यकता है।
  • पैटर्न का उपयोग तब किया जाता है जब कोई वर्ग अपने द्वारा बनाए गए ऑब्जेक्ट को निर्दिष्ट करने के लिए अपने उपवर्गों पर निर्भर करता है।
  • यह तब उपयोगी होता है जब आप किसी जटिल वस्तु को एक ही स्थान पर बनाने के लिए तर्क को समाहित करना चाहते हैं।

C++ में फ़ैक्टरी पैटर्न का उदाहरण

C ++ में, हम वर्चुअल फ़ैक्टरी विधि के साथ एक अमूर्त आधार वर्ग को परिभाषित करके फ़ैक्टरी पैटर्न को लागू कर सकते हैं। इस विधि को वांछित वर्ग उदाहरण के लिए एक सूचक वापस करना चाहिए। उसके बाद, हम इस आधार वर्ग से ठोस वर्ग प्राप्त कर सकते हैं और उपयुक्त वर्ग का एक उदाहरण वापस करने के लिए फ़ैक्टरी विधि को ओवरराइड कर सकते हैं।



यहां एक उदाहरण दिया गया है कि हम फ़ैक्टरी पैटर्न के इस कार्यान्वयन का उपयोग कैसे कर सकते हैं:

#शामिल

नेमस्पेस एसटीडी का उपयोग करना ;

कक्षा का आकार {

जनता :

आभासी खालीपन खींचना ( ) = 0 ;

स्थिर आकार * createShape ( int यहाँ प्रकार ) ;

} ;

वर्ग मंडल : सार्वजनिक आकार {

जनता :

खालीपन खींचना ( ) {

अदालत << 'एक वृत्त खींचना।' << endl ;

}

} ;

वर्ग आयत : सार्वजनिक आकार {

जनता :

खालीपन खींचना ( ) {

अदालत << 'एक आयत बनाना।' << endl ;

}

} ;

आकार * आकार :: createShape ( int यहाँ प्रकार ) {

अगर ( प्रकार == 1 ) {
वापस करना नया सर्किल ( ) ;
} अन्य अगर ( प्रकार == 2 ) {
वापस करना नया आयत ( ) ;
} अन्य {
वापस करना nullptr ;
}
}


int यहाँ मुख्य ( ) {

आकार * घेरा = आकार :: createShape ( 1 ) ;

घेरा -> खींचना ( ) ;

आकार * आयत = आकार :: createShape ( 2 ) ;

आयत -> खींचना ( ) ;

वापस करना 0 ;

}

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

  पाठ, फ़ॉन्ट, स्क्रीनशॉट विवरण वाली एक तस्वीर स्वचालित रूप से उत्पन्न होती है

निष्कर्ष

फ़ैक्टरी पैटर्न C ++ में एक रचनात्मक डिज़ाइन पैटर्न है जो ऑब्जेक्ट के वर्ग को स्पष्ट रूप से जाने बिना ऑब्जेक्ट निर्माण की अनुमति देता है। यह फ़ैक्टरी वर्ग के पीछे जटिल निर्माण तर्क को छिपाकर ऑब्जेक्ट बनाने के लिए एक सरलीकृत इंटरफ़ेस प्रदान करता है। यह ऑब्जेक्ट बनाने के लिए एक सामान्य इंटरफ़ेस को परिभाषित करके किया जाता है, जहां रनटाइम पर ऑब्जेक्ट की विशिष्ट श्रेणी निर्धारित की जाती है। इस लेख में फ़ैक्टरी पैटर्न के बारे में और पढ़ें।