Wednesday, November 21, 2012

Design Pattrens تصميم الأنماط




هو حل عام لمشكلة عامة تحدث ضمن سياق تصميم البرامجيات .تصميم الانماط هو ليس تصميم متكامل واعني انه لا يمكنك ان تكتب الكود البرمجي مباشرة في داخله, لأنه عبارة عن وصف (description)  او (template) لاجل حل مشكلة شائعة
تصميم الأنماط (design patterns) قدم لأول مرة من قبل Christopher Alexander عام 1977  ضمن مقالة الحلول الشائعة لأجل المشاكل الشائعة داخل حقل البناء والهندسة المعمارية بحيث قال " كل نمط يركز على وصف المشكلة التي تحدث وتتكرر في بيئتنا , ومن ثم يصف جوهر الحل لهذه المشكلة المتكررة " .وفي عام 1980 قام Kent Beck و Ward Cunningham بتطبيق مصطلح الأنماط على نطاق علوم الحاسبات (Computer Science) .وتطور مصطلح تصميم الأنماط في عالم الحاسوب خلال فترة الثمانينات وتعلق بمفهوم كائنيةالمنحنى وظهر الكثير من الأنماط التي قللت العبأ على المصمم ومعماري ومطور الأنظمة ,وفي عام 1995 نشر أهم  كتاب في  تصميم الأنماط “Elements of Reusable Object-Oriented Software” الذي اشترك في كتابته الملوك الأربعة (Gang of Four) في معمارية البرمجيات  وهم

 “Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ”

يحتوي الكتاب على 23 نمط تدعم اللغات الكائنية المنحنى (Object Oriented Programming) ومقسمة ضمن أصناف تحدد مواصفاتها وغرضها وهي :
creational , structural, behavioral  .

ويعتبر الكتاب من أهم الكتب التي تدرس داخل أروقة علوم الحاسبات وهندسة البرامجيات وفي عام 2002 قام المصمم والمعماري الشهير Martin Fowler  بأضافة وتحديث بعض الأنماط من خلال كتابه الشهير “Patterns of Enterprise Application Architecture”  وركز  في كتابه على تطبيقات المؤسسات وتعقيدها .

لنعطي الأن مثال حول استخدام الأنماط:

يوجد تطبيق متصل بقواعد بيانات من نوع SqlServer ويتم ربطها بالتطبيق بواسطة تقنية ADO.Net وفي يوم من الايام جاء مدير الشركة وقال أريد أن يتصل النظام بقواعد بيانات من نوع Oracle أيضا وهنا سوف أقع في مشكلة كيف أوصل النظام بمزودين مختلفين من حيث الشركة والأتصال وهنا سوف يأتي دور الأنماط بحيث يوجد لحل هذه المشكلة نمط يعرف (Factory Method) الذي يعطي حل مثالي لأجل الأتصال بأكثر من مزود قواعد بيانات.لن أدخل في تفاصيل هذا النمط الان لكن اعدكم بشرح كافة الأنماط في الدروس القادمة.

لنأخذ مشكلة أخرةأريدان أحمي الأتصال بقواعد البيانات وفي نفس الوقت اخلق كائن وحيد من خلاله يتم الأتصال والوصول اليه عبر global point لأجل تأمينه.أذن لأجل حل المشكلة سوف استخدم النمط (Singleton) .

الأن نقوم بأعطاء الرسم التالي لأجل توضيح الأنماط الثلاثة والعشرون المنطوية داخل التصنيفات الثلاثة :


والان يمكنكم تحميل الكتابان المذكوران انفا :

No comments:

Post a Comment