क्या यह Android विकास में ORM का उपयोग करने के लिए समझ में आता है?


27

क्या एंड्रॉइड डेवलपमेंट में ओआरएम का उपयोग करना समझ में आता है या यूआई और डीबी परत के बीच एक सख्त युग्मन के लिए अनुकूलित रूपरेखा है?


पृष्ठभूमि : मैंने अभी-अभी एंड्रॉइड डेवलपमेंट के साथ शुरुआत की है, और मेरी पहली वृत्ति (.नेट बैकग्राउंड से आने वाली) एक छोटे ऑब्जेक्ट-रिलेशनल मैपर और अन्य टूल्स की तलाश में थी, जो बॉयलरप्लेट क्लोड (जैसे POJOs + OrmLite / लंबोक ) को कम करने में मदद करते हैं ।

हालाँकि, अपने पहले खिलौने के अनुप्रयोग को विकसित करते समय, मैंने एक यूआई वर्ग पर ठोकर खाई, जिसमें स्पष्ट रूप से डेटाबेस कर्सर की आवश्यकता होती है AlphabetIndexer:। इससे मुझे आश्चर्य हुआ कि क्या यूआई और डीबी परत के सख्त डिकॉउपिंग के लिए शायद एंड्रॉइड लाइब्रेरी अनुकूल नहीं है और अगर मैं हर जगह पीओजेओ का उपयोग करने की कोशिश करूं तो बहुत सारे उपयोगी, समय की बचत करने वाली सुविधाओं को याद करूंगा। )।


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

जवाबों:


20

एंड्रॉइड अन्य फ्रेमवर्क के साथ उतना अच्छा नहीं खेलता है जितना कि वह कर सकता है। विकास की इसकी अनुशंसित शैली यह मानती है कि आप अन्य एपीआई के बिना, इसके एपीआई से सब कुछ बनाते हैं। यूआई परत बहुत कसकर मॉडल के लिए युग्मित है। यह शैली छोटे, मॉड्यूलर एप्लिकेशन लिखने के लिए आदर्श है, जटिल अनुप्रयोगों के लिए नहीं।

आपको कुछ विचार देने की आवश्यकता है जैसे कि आप किसी भी एंड्रॉइड की कार्यक्षमता चाहते हैं; यदि आपको इसकी आवश्यकता नहीं है, तो आपके पास ORM का उपयोग करके खोने के लिए कुछ भी नहीं है। यदि यह मामला नहीं है, तो आपको एक संकर के लिए व्यवस्थित करने की आवश्यकता हो सकती है। आप कर सकते हैं सभी के लिए एक ओआरएम का उपयोग करें, लेकिन अपने आप को Cursorएस और किसी अन्य निम्न-स्तर की वस्तुओं की आवश्यकता के लिए अपने आप को हुक दें । यदि आपके द्वारा चुने गए ओआरएम को डीएओ की आवश्यकता होती है (मैं आपके द्वारा बताए गए से परिचित नहीं हूं), तो यह परत संभवतः उनके लिए सबसे अच्छी जगह है।

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

YAGNI और KISS यहाँ सफलता के लिए कीवर्ड हैं। मेरा सुझाव है कि आप कुछ दिनों के प्रोटोटाइप का खर्च करें। सरल परीक्षण क्षुधा बाहर फेंक करने के लिए डरो मत। अपने सभी विचारों को अकेले आज़माएं, फिर तय करें कि क्या कोई या सभी आपके प्रोजेक्ट के लिए काम करेंगे।


6

यह इस बात पर निर्भर करता है कि आप अपने डेटा मॉडल के साथ क्या करते हैं। यदि आपके पास मौजूदा कोड है जो ऑब्जेक्ट ओरिएंटेड मॉडल में हेरफेर करता है, और यदि आप उन वस्तुओं को एक sqlite डेटाबेस में जारी रखना चाहते हैं, तो आपको एक ऑरम की आवश्यकता है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.