मैं कम से कम कागज पर, सामग्री प्रदाता के बीच मूल अंतर और सीधे SQLiteDatabase तक पहुंचने के बारे में समझता हूं। मेरे पास मेरे एप्लिकेशन के लिए एक फ़ंक्शनिंग प्रोटोटाइप है, और वर्तमान में यह सीधे डेटाबेस को मार रहा है। मुझे सामग्री प्रदाता पैटर्न का उपयोग करके वास्तव में कोई अनुभव नहीं है, लेकिन मुझे पता चला है कि मुझे कुछ डेटा किसी अन्य एप्लिकेशन के साथ साझा करने की आवश्यकता होगी।सामग्री प्रदाता बनाम डायरेक्ट डाटाबेस एक्सेस (लेनदेन प्रबंधन)
मैं केवल एक दर्जन या उससे अधिक टेबलों में से 2 साझा कर रहा हूं, इसलिए मैं सोच रहा था कि क्या मुझे सामग्री प्रदाता पैटर्न का पालन करने के लिए डेटा परत को पूरी तरह से फिर से करना चाहिए या केवल सामग्री प्रदाता के माध्यम से केवल उन तालिकाओं को बेनकाब करना चाहिए अन्य एप्लिकेशन के लिए और अभी भी प्राथमिक एप्लिकेशन में डेटाबेस तक सीधे पहुंचें।
मेरे प्रोटोटाइप के साथ चलने वाले मुद्दों में से एक यह था कि मेरे पास कुछ जटिल लेनदेन हैं, और जो कोड मैंने लिखा है उसे प्राप्त करने के लिए विशेष रूप से अच्छी तरह से डिजाइन नहीं किया गया है और यह बिल्कुल भी पुन: प्रयोज्य नहीं है। जैसे-जैसे मैं इस ऐप में और अधिक कार्यक्षमता जोड़ता हूं, मुझे अपनी खुद की लेखन बंद करने से पहले, बेहतर तरीके से डिज़ाइन किए गए डेटा एक्सेस लेयर की आवश्यकता होगी, क्या किसी को इस प्रकार की चीज़ के लिए डिज़ाइन पैटर्न के साथ किसी भी अच्छे संसाधन के बारे में पता है? साथ ही, अगर मुझे सामग्री प्रदाता मार्ग पर जाना है, तो क्या मुझे डेटाबेस लेनदेन पर ठोस नियंत्रण होगा?
धन्यवाद, और मैं सहमत हूं कि सामग्री प्रदाता का उपयोग केवल पैटर्न को संतुष्ट करने का कोई कारण नहीं होगा। वास्तव में डेटाबेस तक सीधे पहुंचना एक पूरी तरह व्यवहार्य पैटर्न है। कुछ और शोध के बाद, ऐसा लगता है कि ContentProvider कई एपीआई कॉलों में लेन-देन प्रबंधित करने में सक्षम नहीं है जैसे मुझे चाहिए (http://www.mail-archive.com/[email protected]/msg42281.html) मैं कोर एप्लिकेशन के भीतर सीधी पहुंच के साथ रहूंगा और बस जरूरी चीज़ों का पर्दाफाश करने के लिए ContentProvider को जोड़ूंगा। – Mike