اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

وعليكم السلام ورحمة الله.
تختلف العملية بحسب حجم المشروع، وبحسب التقنية التي تعمل عليها.

ولكن أضعف الإيمان هي استخدام كلاس واحد، ولكن دعني اوضح بعض النقاط، لتطوير طبقة الاتصال بقاعدة البيانات بالشكل الأفضل.
1. نقوم بتعريف الدوال (الميثودز) الخاصة بالقراءة والكتابة على قاعدة البيانات ضمن Interface وليكن اسمه IDataRepository

2. نقوم بإنشاء كلاس، بحيث يرث من الـ Interface السابق، الآن تصبح لدينا تطبيق هذا الـ Interface او بمعنى اخر كتابة الكود الخاص بالاتصال بقاعدة البيانات.

3. نقوم بتسمية الكلاس بإسم يوافق اسم التقنية او قاعدة البيانات التي نعمل عليها، لنفترض اننا نتعامل مع MySQL فيكون اسم الكلاس بالشكل التالي IMySqlRepository

4. ضمن اقسام التطبيق لا نتعامل مع الكلاس مباشرة، بل نتعامل مع الـ Interface، بحيث يكون التطبيق لدينا بمعزل عن التقنية المستخدمة للتعامل مع قاعدة البيانات، بالتالي مستقبلا يمكن استبدال تقنية MySQL ب SQL Server، عندها نقوم بإنشاء كلاس جديد ISqlRepository، أو قد نتعامل مع ملفات XML فنقوم بإنشاء كلاس جديد ايضا IXMLRepository، دون اي تعديل على باقي اقسام التطبيق.

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

1. إنشاء طبقة بيانات خاصة بقراءة المنتجات والبحث فيها (IProductRepository)

2. إنشاء طبقة بيانات خاصة بالطلبات وسلة الشراء (IOrderRepository)

3. إنشاء طبقة بيانات خاصة بالإدارة (IAdminRepository)

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

سأرفق مثالاً عملياً بلغة سي شارب وقواعد بيانات SQL لاحقاً إن شاء الله

بالتوفيق...

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...