मुझे आश्चर्य है कि मुझे अपने भंडारों को कैसे समूहीकृत किया जाना चाहिए? एएसपीनेट एमवीसी पर देखे गए उदाहरणों की तरह और मेरी किताबों में वे मूल रूप से प्रति डेटाबेस तालिका में एक भंडार का उपयोग करते हैं। लेकिन ऐसा लगता है कि आपको कई रिपॉजिटरीज़ मिलते हैं जो आपको बाद में मॉकिंग और सामान के लिए कई रिपॉजिटरीज़ को कॉल करना पड़ता है।रिपोजिटरी पैटर्न का सही तरीके से उपयोग कैसे करें?
तो मुझे अनुमान है कि मुझे उन्हें समूह करना चाहिए। हालांकि मुझे यकीन नहीं है कि उन्हें कैसे समूहित किया जाए।
अभी मेरी पंजीकरण पंजीकरण सामग्री को संभालने के लिए मैंने एक पंजीकरण रिपोजिटरी बनाई है। हालांकि मुझे 4 टेबल की तरह अपडेट करने की आवश्यकता है और इससे पहले कि मेरे पास 3 रिपोजिटरी हों।
उदाहरण के लिए टेबल में से एक लाइसेंस तालिका है। जब वे पंजीकरण करते हैं तो मैं उनकी कुंजी देखता हूं और यह देखने के लिए जांच करता हूं कि डेटाबेस में मौजूद है या नहीं। अब क्या होगा यदि मुझे इस लाइसेंस कुंजी या किसी अन्य स्थान पर उस तालिका से कुछ और पंजीकरण करने की आवश्यकता है तो पंजीकरण?
एक स्थान लॉगिन किया जा सकता है (जांचें कि कुंजी की समयसीमा समाप्त नहीं हुई है)।
तो मैं इस स्थिति में क्या करूँगा? फिर कोड को फिर से लिखें (DRY तोड़ें)? इन 2 रिपॉजिटरीज़ को एक साथ निकालने का प्रयास करें और उम्मीद करें कि किसी अन्य समय में किसी भी तरीके की आवश्यकता नहीं है (जैसे कि मेरे पास ऐसा तरीका हो सकता है जो उपयोगकर्ता नाम का उपयोग करता है या नहीं - शायद मुझे कहीं और इसकी आवश्यकता होगी)।
यदि मैं उन्हें एक साथ मिलाता हूं तो मुझे या तो एक ही भंडार में जाने वाली 2 सेवा परतों की आवश्यकता होगी क्योंकि मुझे लगता है कि साइट के 2 अलग-अलग हिस्सों के लिए सभी तर्क लंबे होंगे और मुझे ValidateLogin() जैसे नाम होना चाहिए , ValdiateRegistrationForm(), ValdiateLoginRetrievePassword() और आदि
या रिपोजिटरी को वैसे भी कॉल करें और बस एक अजीब ध्वनि नाम है?
यह एक भंडार बनाने में मुश्किल लगता है जिसमें एक सामान्य पर्याप्त नाम है ताकि आप इसे अपने आवेदन के कई स्थानों के लिए उपयोग कर सकें और अभी भी समझ में आ सकें और मुझे लगता है कि एक भंडार में एक और भंडार कॉल करना अच्छा अभ्यास नहीं होगा ?
+1। महान सवाल – griegs
धन्यवाद यह अब कुछ समय के लिए मुझे खराब कर रहा है। चूंकि मुझे लगता है कि पुस्तक में मैंने जो देखा वह बहुत आसान है, इसलिए वे आपको नहीं दिखाते कि इन परिस्थितियों में क्या करना है। – chobo2
मैं मूल रूप से आपके जैसा ही कर रहा हूं और हाँ यदि मेरे पास एक linq2sql क्लास है जिसका उपयोग 1 से अधिक भंडार में किया जाता है और मुझे तालिका संरचना को बदलने की ज़रूरत है, तो मैं DRY को तोड़ता हूं। आदर्श से कम। अब मैं इसे थोड़ा बेहतर बनाने की योजना बना रहा हूं इसलिए मुझे एक से अधिक linq2sql वर्ग का उपयोग करने की आवश्यकता नहीं है, जो मुझे लगता है कि चिंताओं का अच्छा पृथक्करण है, लेकिन मुझे लगता है कि यह एक दिन होगा जब यह मेरे लिए एक वास्तविक मुद्दा होगा। – griegs