2009-04-24 6 views
9

यदि आप एक रिपोजिटरी क्लास बनाते हैं जो किसी दिए गए इकाई, जैसे कि पर्सनल रिपोजिटरी के लिए आपके सभी दृढ़ता तर्क को समाहित करता है, लेकिन आपकी रिपोजिटरी क्लास वर्क पैटर्न या पहचान मानचित्र पैटर्न की इकाई को लागू नहीं करती है, तो क्या इसे अभी भी एक संग्रह माना जाता है? दूसरे शब्दों में, एक यूनिट ऑफ वर्क एंड आइडेंटिटी मैप एक रिपोजिटरी कार्यान्वयन के लिए आवश्यक है, या क्या हम किसी भी वर्ग को कॉल कर सकते हैं जो हमारे दृढ़ता तर्क को एक भंडार को समाहित करता है?एक रिपोजिटरी अभी भी कार्य इकाई के बिना एक रिपोजिटरी है?

मुझे एक चीज़ जोड़नी चाहिए। यदि किसी रिपॉजिटरी को इन पैटर्न की आवश्यकता नहीं होती है और यह वास्तव में दृढ़ता विधियों के लिए केवल एक कंटेनर है, तो एक भंडार और डीएओ (डेटा एक्सेस ऑब्जेक्ट) के बीच क्या अंतर है? क्या हम सिर्फ एक ही ऑब्जेक्ट के लिए कई नाम बना रहे हैं या क्या हम एक संग्रह का हिस्सा खो रहे हैं?

उत्तर

3

हां, यह अभी भी एक भंडार है।

यदि रिपोजिटरी == डीएओ, मुझे लगता है कि रिपोजिटरी व्यापार तर्क परत पर होना चाहिए और डीएओ डेटा एक्सेस लेयर पर होना चाहिए, यानी मुझे लगता है कि वे अलग-अलग परतों पर हैं। इसलिए जैसा कि मैं समझता हूं, रिपोजिटरी डेटा लोड करने और बनाए रखने के लिए डीएओ विधियों को कॉल करता है।

3

मैं कहूंगा कि रिपोजिटरी और कार्य पैटर्न की इकाई ऑर्थोगोनल हैं।

अक्सर, मैं कई रिपॉजिटरीज़ पर संचालन के लिए काम की एक इकाई चाहता हूं, इसलिए इसका कार्यान्वयन उच्च परत में होगा।

1

एसआईआई ने जो कहा, उस पर बिल्डिंग - यह बेहतर मुझे लगता है कि यदि भंडार और कार्य की इकाई संबंधित नहीं है। चिंताओं का पृथक्करण?

1

चिंताओं को अलग करने पर विचार करते समय, याद रखें कि आपके रिपोजिटरी में डाटा स्टोरेज कार्यान्वयन विधियां होंगी, जिससे आप इसे अपने मुख्य कोड से बाहर रख सकेंगे। यह यूनिट परीक्षण के साथ-साथ अंततः आपके डेटा स्टोरेज कार्यान्वयन को पूरी तरह से स्वैप करने में सहायक है (डाटा स्टोरेज कार्यान्वयन का एक उदाहरण एएसपी.नेट में LINQ-to-SQL होगा।)

संबंधित मुद्दे