Three Tier Model Concepts, النظام ثلاثي الطبقات.. نظرة متمحصة
:: منتديات التصميم و البرمجة :: منتدى برمجة الألعاب والجرافيكس والتصميم :: قسم : برمجة الألعاب والجرافكس العام
صفحة 1 من اصل 1
Three Tier Model Concepts, النظام ثلاثي الطبقات.. نظرة متمحصة
أغلبنا سمع عن الThree Tier Model و الذي يتكون من الأجزاء الثلاثة الشهيرة
1- ال Data Tier
2- ال Business Logic Tier
3- ال Presentation Tier
و هذا هو النظام الأشهر في بناء التطبيقات التجارية و سنحاول شرحه ببساطة و اعطاء أمثلة ان شاء الله
1- ال Data Tier
و
هي الجزء الذي يتولى التعامل مع مصدر المعلومات مهما كان نوعه (قاعدة
بيانات, ملفات نصية , .... الخ) و هي التي تتولى تخزين و استرجاع البيانات
بغض النظر عن النظام نفسه و ماذا يفعل
و ينقسم هذا الجزء الى قسمين أصغر
أ- Data Access Layer
و هي الجزء المسؤول عن التعامل المباشر مع قاعدة البيانات فهي تأخذ
الQuery أو الStored Procedure و تنفذها و تعود بالناتج بدون تفكير و يمكن
ببساطة نقل هذا الجزء من نظام لآخر دون تغيير في الكود الخاص بها ... و
مثال بسيط عليها هو ال ADO.net نفسه
ب- Proxy Layer
و
هي Classes تنفذ الوظائف الأساسية على الTables مثل الUpdate و الSelect و
الDelete و الInsert و لكل Table له Class Proxy خاصة به تتولى العمليات
الخاصة به
بمعنى أنه اذا فرضنا أننا نملك Database تحوي Tables بهذه الأسماء Users, Articles ...
و
هكذا سيكون لدينــا 2 Classes من نوع Proxy و كل منهم يحوي الCode اللازم
لاضافة و حذف و تعديل و قراءة المعلومات من الجدول المناظر له في
الDatabase
و لكن يظهر سؤال ماهي الطريقة التي سنمثل بها الData خارج الDatabase أي عندما نقوم بعمل شئ مشابه لهذا
- الكود:
Proxy_Users user = new Proxy_Users();
user.GetUser(2)
فكيف سنخزن الUser Data و أين ؟؟؟
يجب أن يكون هناك مخزن للمعلومات و
هنــا يمكن استخدام الStrongly Typed DataSets مثلاً أو أن تقوم بعمل
Class تمثل كل Table من اختيارك بدون الاعتماد على ال STDataSets
و سنأتي لهذا الموضوع لاحقاً
2- الBusiness Tier
و
هي المنطقة التي يتحول فيها النظام من كونه Tables مخزنة في Database الى
Object Oriented Model أي أننا بعد كتابة هذا الجزء يمكننا أن ننسى تماماً
طبيعة تخزين البيانات..
كمثال على الDatabase السابقة سيكون لدينا
Class User و Class Article و داخل ال Article يوجد reference على Object
من نوع User تمثل كاتب المقال و أيضاً داخل الUser يوجد Collection من
الArticle Objects تمثل المقالات التي تخص هذا المستخدم و هكذا يمكننا
استخدام الClasses بهذه الطريقة
يجب أن يكون هناك مخزن للمعلومات و
هنــا يمكن استخدام الStrongly Typed DataSets مثلاً أو أن تقوم بعمل
Class تمثل كل Table من اختيارك بدون الاعتماد على ال STDataSets
و سنأتي لهذا الموضوع لاحقاً
2- الBusiness Tier
و
هي المنطقة التي يتحول فيها النظام من كونه Tables مخزنة في Database الى
Object Oriented Model أي أننا بعد كتابة هذا الجزء يمكننا أن ننسى تماماً
طبيعة تخزين البيانات..
كمثال على الDatabase السابقة سيكون لدينا
Class User و Class Article و داخل ال Article يوجد reference على Object
من نوع User تمثل كاتب المقال و أيضاً داخل الUser يوجد Collection من
الArticle Objects تمثل المقالات التي تخص هذا المستخدم و هكذا يمكننا
استخدام الClasses بهذه الطريقة
- الكود:
User user = new User();
user.FirstName = "Mohammed";
user.LastName = "Ahmed";
user.Age = 12;
user.Save();
Article article = new Article();
article.Subject = "anyThing";
article.CreationDate = DateTime.Now;
article.Author = user;
article.Save();
user.Articles.Add(article);
و هكذا تجد أن الكود أصبح أكثر قوة و أسهل في التعامل و أصبح ايضاًً
Encapsulated بشكل متميز و استطعنا اخفاء تفاصيل التعامل مع الDatabase في
الtiers الأدنى و أيضاً داخل ال BusinessObjects استطعنا اخفاء استخدامنا
للDataTier حتى يمكننا في الLayer الأعلى أن ننسى فعليا طبيعة البيانات
3- الPresentation Tier
و
هي الجزء الذي يتعامل مع مستخدم البرنامج (من الاخر الUser interface )
بجميع أنواعه و البيئات المستخدمة سواء كان Windows Application أو Web
Application أو حتى Console Applications و يتم في هذا الجزء التعامل
المباشر مع الBusinessTier و لا يُسمح أبدا بالتعامل المباشر مع
الDataTier و في الحقيقة لو كان تصميمك جيداً فلن تحتاج أبدأ الDataTier
في الPresentation Tier
و للحديث بقية
Encapsulated بشكل متميز و استطعنا اخفاء تفاصيل التعامل مع الDatabase في
الtiers الأدنى و أيضاً داخل ال BusinessObjects استطعنا اخفاء استخدامنا
للDataTier حتى يمكننا في الLayer الأعلى أن ننسى فعليا طبيعة البيانات
3- الPresentation Tier
و
هي الجزء الذي يتعامل مع مستخدم البرنامج (من الاخر الUser interface )
بجميع أنواعه و البيئات المستخدمة سواء كان Windows Application أو Web
Application أو حتى Console Applications و يتم في هذا الجزء التعامل
المباشر مع الBusinessTier و لا يُسمح أبدا بالتعامل المباشر مع
الDataTier و في الحقيقة لو كان تصميمك جيداً فلن تحتاج أبدأ الDataTier
في الPresentation Tier
و للحديث بقية
مواضيع مماثلة
» نظرة عامة على برامج 3d
» هيا لننمذج Lets Model, درس من دروس هندسة البرمجيات
» مثال على تصميم لData Tier افترض وجود Database بهذا التصميم
» هيا لننمذج Lets Model, درس من دروس هندسة البرمجيات
» مثال على تصميم لData Tier افترض وجود Database بهذا التصميم
:: منتديات التصميم و البرمجة :: منتدى برمجة الألعاب والجرافيكس والتصميم :: قسم : برمجة الألعاب والجرافكس العام
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى