मेरा मानना है कि यदि आपके पास आपकी रिपॉजिटरी एक ORM का उपयोग करती है जो डेटाबेस से पहले से ही पर्याप्त है।
हालाँकि, जहाँ मैं अब काम कर रहा हूँ, किसी का मानना है कि हमारे पास एक ऐसी परत होनी चाहिए जो ओआरएम को अमूर्त कर दे, ताकि हम बाद में ओआरएम को बदलना चाहें।
क्या यह वास्तव में आवश्यक है या यह केवल एक परत बनाने के लिए बहुत सारे सिर पर है जो कई ओआरएम पर काम करेगा?
संपादित करें
बस अधिक विवरण देने के लिए:
- हमारे पास POCO क्लास और Entity Class हैं जिन्हें AutoMapper के साथ मैप किया जाता है। इकाई वर्ग का उपयोग रिपॉजिटरी परत द्वारा किया जाता है। रिपॉजिटरी लेयर तब एंटिटी फ्रेमवर्क के साथ संचार करने के लिए एब्सट्रैक्शन की अतिरिक्त परत का उपयोग करती है।
- व्यवसाय परत में किसी भी तरह से एंटिटी फ्रेमवर्क तक सीधी पहुंच नहीं है। ओआरएम पर अमूर्तता की अतिरिक्त परत के बिना भी, इस सेवा परत को उस उपयोगकर्ता परत का उपयोग करने की आवश्यकता है जो रिपॉजिटरी परत का उपयोगकर्ता है। दोनों ही स्थिति में, व्यावसायिक परत ORM से पूरी तरह से अलग हो जाती है।
- मुख्य तर्क भविष्य में ओआरएम को बदलने में सक्षम होना है। चूंकि यह वास्तव में रिपोजिटरी परत के अंदर स्थानीयकृत है, मेरे लिए, यह पहले से ही अच्छी तरह से अलग हो गया है और मुझे नहीं दिखता कि अमूर्त की एक अतिरिक्त परत को "गुणवत्ता" कोड की आवश्यकता क्यों है।