هل يجب أن يكون للنشاط الوصول المباشر إلى قاعدة بيانات SQLite أو يجب أن يكون هناك فئة وسيط؟

StackOverflow https://stackoverflow.com//questions/9674929

سؤال

لقد صهرني SQLITEOPENHELPER ونكون جميع مكونات التعليمات البرمجية جاهزة للاستخدام. السؤال هو أن ذلك هو تصميم جيد حقا للسماح بأي نشاط يتمكن من الوصول المباشر إلى الأساليب العامة في فئة قاعدة البيانات الرئيسية.

لدي موقف حيث سيقوم نشاطي بملء المعلومات في تخطيطاته بناء على المعلومات التي تحصل عليها من قاعدة البيانات - بشكل أساسي تم إنشاؤه بشكل ديناميكي في وقت التشغيل. نظرا لأنني سأعود إلى صفوف متعددة من قاعدة البيانات التي تعني أنني سأحصل على مجموعة من كل ما أحتاجه للحصول على جميع المعلومات.

شيء مثل هذا:

giveacodicetagpre.

يحتاج نشاطي إلى هذا "الهيكل" الخاص به - بحيث يمكن أن تتلقى المعلومات من قاعدة البيانات - شيء مثل Getallmenuitems ()، - حيث تقوم هذه الطريقة بإجراء عبارة مختارة، تجميع المعلومات هي "بنية" وإعادته إلى النشاط الرئيسي. ثم استخدم هذه المعلومات داخل النشاط لإنشاء تخطيطات / طرق عرض، إلخ.

إذا كنت في نهاية المطاف وجود فئة وسيط للتحدث مع قاعدة البيانات، فستحتاج تلك الفئة أيضا إلى نفس "الهيكل" المحدد فيه. سيكون تصميم أفضل لديك شيء مثل:

mearactiver

databaseaccessor - يدعو دروس قواعد البيانات العامة (لكل طلب من المعينين)

قواعد البيانات (Subclasses sqliteopenhelper، يؤدي جميع استعلامات قاعدة البيانات)

أود تصميم شيء ما على طول خطوط MVC (تحكم النموذج - المراقب الموديل) لكنني كنت أتساءل عما فكرت يا رفاق في التطبيق العملي في تطبيق Android.

شكرا!

هل كانت مفيدة؟

المحلول

بشكل عام، من الجيد إجراء النشاط وقاعدة البيانات كما انفصلت عن بعضها البعض قدر الإمكان.يتيح لك ذلك أن تكون قادرا على تغيير مصدر البيانات من خلال إنشاء فئة للوصول إليها، دون حاجة لتغيير التعليمات البرمجية التي تستخدمها لتقديم البيانات.

لذلك، نعم، أود أن يكون لدي فئة منفصلة تماما للوصول إلى البيانات، وفئة منفصلة للسماح بتمرير البيانات إلى النشاط.وأود أيضا اتباع قانون DEMETER في هذه الحالة، وتوفير أي وظائف ضرورية للوصول إلى البيانات الأساسية أو تغييرها دون توفير الوصول إلى قاعدة البيانات الأساسية بالفعل.

نصائح أخرى

في الختام - أعتقد أن وجود قاعدة البيانات منفصلة عن واجهة المستخدم الرسومية هو خطوة ذكية في حال أريد استخدام فئة DB مرة أخرى مع أي نشاط آخر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top