5

ऐसा लगता है कि केवल अंतर यह है कि सक्रिय रिकॉर्ड में डेटा कंटेनर क्लास में सीआरयूडी विधियां हैं, और रिपोजिटरी पैटर्न डेटा कंटेनर और सीआरयूडी विधियों के लिए अलग-अलग वर्ग का उपयोग करता है, लेकिन निश्चित रूप से मैं गलत हूं।सक्रिय रिकॉर्ड और रिपोजिटरी पैटर्न के बीच अंतर क्या हैं?

सक्रिय रिकॉर्ड और रिपोजिटरी पैटर्न के बीच अंतर क्या हैं? मुझे किस पैटर्न का उपयोग करना चाहिए?

उत्तर

5

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

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

2

IMO, भंडार पैटर्न, आदेशों की डेटाबेस के लिए किए गए, क्योंकि यह लेन-देन के मामले में सोचने के लिए आप गाड़ियों प्रश्नों की संख्या, और बैचिंग कम करने के लिए सक्रिय रिकॉर्ड पैटर्न अपने बुला दूर ले करने के लिए आसान के साथ, जबकि मदद करता है। बचाओ(), .fetch(), आदि बेकार त्याग के साथ। डेटाबेस सामान्य रूप से एक बड़ी पर्याप्त बाधा हो सकती है, अनावश्यक प्रश्नों के साथ इसे और खराब न करें।

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