मेरे पास एक कक्षा है जो ओरेकल या MySQL के साथ इंटरफ़ेस कर सकती है। कक्षा को "ओरेकल" या "माईएसक्यूएल" या कुछ अन्य पैरामीटर के कीवर्ड के साथ शुरू किया गया है जो डेटाबेस प्रकारों (प्रिंट करने के लिए, क्या अपवाद पर रोकना है या नहीं) के लिए मानक हैं।कक्षाओं को कई वर्गों में विभाजित करने के लिए सबसे पाइथोनिक तरीका
जब मैंने शुरू किया, तो आवश्यकतानुसार if Oracle do A, elif MySQL do B
जोड़ने के लिए काफी आसान था, लेकिन जैसा कि मैं अधिक विशिष्ट कोड जोड़ता हूं जो केवल एक डेटाबेस प्रकार पर लागू होता है, यह बदसूरत हो रहा है। मैंने कक्षा को दो में विभाजित कर दिया है, एक ओरेकल के लिए और एक MySQL के लिए, डुप्लिकेट कोड से बचने के लिए कुछ साझा फ़ंक्शंस के साथ।
इन नए वर्गों को कॉल करने के लिए सबसे पाइथोनिक तरीका क्या है? क्या मैं एक रैपर फ़ंक्शन/क्लास बनाता हूं जो इस कीवर्ड का उपयोग करता है और सही कक्षा देता है? क्या मैं अपना पूरा कोड बदलता हूं जो पुरानी जेनेरिक क्लास को सही डीबी-विशिष्ट कक्षा को कॉल करने के लिए कहता है?
यदि आवश्यक हो तो मैं खुशी से कुछ उदाहरण कोड तैयार करूँगा, लेकिन मुझे नहीं लगता था कि यह आवश्यक था। किसी भी सहायता के लिए अग्रिम रूप से धन्यवाद!
अच्छी सलाह, लेकिन जब तक कि आपकी फैक्ट्री क्लास बेस क्लास भी न हो, तो आप एक फैक्ट्री फ़ंक्शन का उपयोग भी कर सकते हैं। – Marcin
फ़ैक्टरी क्लास का उपयोग करना उपयोगी होता है जब आपको इसे कॉन्फ़िगर करने की आवश्यकता होती है। अन्यथा, आपको बहुत से पैरामीटर के साथ एक फ़ंक्शन मिलता है। –