المتابعون للمدونة

الثلاثاء، 8 أغسطس 2017

مصانع المزودات Provider Factories


مصانع المزودات Provider Factories 

لعلك شعرت بالاستياء من وجود أكثر من نوع من نفس الكائن للتعامل مع مزودات قواعد البيانات المختلفة:
- كائنات الاتصال مثل OleDbConnection و SqlConnection و OracleConnection.
- كائنات الأمر مثل OleDbCommand و SqlCommand و OracleCommand.
- كائنات قراءة البيانات مثل OleDbDataReader و SqlDataReader و OracleDataReader.
- موصلات البيانات مثل OleDbDataAdapter و SqlDataAdapter و OracleDataAdapter.
فهذا يجعلك تكتب كودا مختلفا لكل نوع من أنواع قواعد البيانات، رغم أن الاختلاف ينحصر فقط في جمل تعريف الكائنات، وليس في فكرة الكود!
ولقد قدمت دوت نت 2005 حلا لهذه المشكلة بإضافتين هامتين:
1- تعريف الفئات العامة في النطاق System.Data.Common، مثل:
- الفئة DbConnection التي تشتق منها جميع كائنات الاتصال.
- الفئة DbCommand التي تشتق منها جميع كائنات الأوامر.
- الفئة DbDataReader التي تشتق منها كل قارئات البيانات.
- الفئة DbDataAdapter التي تشتق منها كل موصلات البيانات.
هذا يجعل من الممكن استخدام الفئة الأم للتعامل مع أي نوع من أنواع الفئات المشتقة منها (راجع مفهوم الفئات الأساسية المجردة Abstract Base Classes وتعدد الأسماء Polymorphism في فصل الوراثة في كتاب "من الصفر إلى الاحتراف: فيجيوالبيزيك دوت نت").
2- إضافة الفئتين DbProviderFactories و DbProviderFactory إلى النطاق System.Data.Common، لإمدادك بمصنع خاص بمزود البيانات الذي تريد التعامل معه، ما يكمل قدرتك على تعميم الكود، كما سنرى بعد قليل.
وسنتعلم في هذا الفصل كيف نستخدم هاتين الإمكانيتين لكتابة كود واحد للتعامل مع أنواع مختلفة من قواعد البيانات، وسنستخدمه للتعامل مع قاعدة بيانات الكتب في كل من سيكويل سيرفر وآكسيس. 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر