ماهي البرمجة الكائنية المنحى Object-Oriented Programming .

adel1952

New Member
البرمجة الكائنية المنحى Object-Oriented Programming .

ان ابرز ناحيتتين في هذه البرمجة هما الكائنات والفئات والواقع ان المناقشات التى تدور حول لغة ++C تهاجم مفهوم الكائنات والفئات وتتكلم عن تفاصيل اجرائية قديمة العهد . لقد تم تطويرOOP بسبب اكتشاف قيود كانت اساليب البرمجة القديمة تفرضها على المبرمجين فباسكال وبيسيك وفورتروان وكوبوبل لغات برمجة تقليدية اجرائية والبرنامج المكتوب بمثل هذه اللغات هو عبارة عن لائحة من التعليمات واستعاضت البرمجة الكائنية المنحى عن تلك الاساليب التى يصعب معها فهم البرامج الكبيرة ما لم تقسم الى اجزاء صغيرة كبرنامج فرعي او روتين فرعي . ان تقسيم البرنامج الى دالات ووحدات هو احد اكبر ركائز البرمجة البينوية . ان الفكرة الاساسية وراء اللغات الكائنية المنحى هى دمج البيانات والدالات التى تعمل على تلك البيانات في كينونة واحدة تسمى الكائن (OBJECT).
واحد ابرز الجوانب الايجابية فيها انك اذا اردت قراءة بند بيانات مخزن في كائن ما ، يمكنك استدعاء عضو دالى تابع لذلك الكائن سيقوم بقراءة البند ويعيد القيمة اليك وبهذا لايمكن الوصول الى البيانات بشكل مباشر فالبيانات مخفية لذلك فهى محمية من التعديلات الخطا (او الترهيم لكي تناسب نتائج مطلوبة مسبوقا كما حصل في برامج جرد اغلب المخازن العراقية في التسعينات خلال الجرود السنوية ومطابقتها) لهذا يقال ان البيانات والدالات مغلفة ENCAPSULTED .
دعنا نقارن برنامجا اجرائياً قديم الطراز بطاولة لمأدبة عشاء ..الضيوف الذين يجلسون على المائدة يمثلون الدالات واطباق الطعام تمثل البيانات. دعنا نفترض ان الضيوف لا يطلبون من الجالسين قربهم ان يمرراو لهم اي طبق لانهم قادرين للوصول الى الاطباق بانفسهم ، يشبه هذا الامر البرنامج الاجرائى حيث كل دالة تصل الى البيانات العامة بشكل مباشر.
يعمل هذا الاسلوب بشكل صحيح طالما لم يكن هناك الكثير من الضيوف على الطاولة فان ست أو سبعة ضيوف هو على الارجح الحد الاقصى.أما في الحفلات الكبيرة –20 ضيفا مثلا- يجب ان يطال الاشخاص مسافات طويلة فتنغمس أكمامهم في الاطباق الموجودة في وسط الطاولة ، وقد يحصل ان يحاول عدة اشخاص الوصول الى نفس الطبق في آن واحد ،وقد ينقلب الطعام وقد يبدا شجار..هذا النوع من الفوضى هو ما يحصل في البرامج الاجرائية الكبيرة حيث الوسيلة الوحيدة للتنظيم هو البيانات والدالات ان المنهج التنظيمى لا يستطيع دعم هذا الموقف المعقد.
مانحتاج اليه هو وسيلة تنظيم اكثر فعالية ،بالنسبة لحفلة العشاء يمكن استعمال عدة طاولات صغيرة بدلا من واحدة كبيرة ، ولكل طاولة طعامها وضيوفها ، أنها وسيلة التنظيم الجديدة ،بامكان الضيوف الجالسين على هذه الطولات الصغيرة الوصول الى الطعام الموضوع على تلك الطاولات بسهولة واذا أراد احد الضيوف شيئاً موضوعا على طاولة اخرى –الملح مثلا- بامكانه طلبه من احد الضيوف الجالسين على تلك الطاولة. ان كل طاولة صغيرة تمثل كائناً وكل كائن يملك دالاته وبياناته الخاصة به .
ان معظم التفاعل الحاصل بين الدالات والبيانات يجري ضمن الكائنات لكنه من الممكن ايضاً ان يتبادل الكائن بيانات مع كائن اخر بأستعمال وسيلة تنظيم اكبر ، الكائنـــــات ، تجمع بين الدالات والبيانات نكون قد اعدنا بعض النظام الى حالة الفوضى لكنها اقل مما في الانظمة الاجرائية

يزات اللغات الكائنية المنحى:
كنظرة سريعة ك عندما نحاول حل مشكلة برمجية في لغة كائنية المنحى ، لن نتسائل بعد اليوم عن كيفية تقسيم المشكلة الى كائنات. ان التفكير بالكائنات بدلا من الدالات له تأثير مساعد مفاجىء عن مدى سهولة تصميم البرامج ينتج ذلك عن المطابقة بين الكائنات في المفهوم البلامجى والكائنات في الحياة الفعلية. هذه ادناه بعض النماذج التى يمكن ان نفكر بها:
1- كينونات بشرية: موظفين ، تلاميذ ، زبائن ، ...الخ.
2- مجموعة من البيانات : جرد ، ملف موظفين ، قاموس ، اطلس خرائط...الخ.
3- عت ناصر في بيئة مستخدم الكومبيوتر: الأطر ، القوائم ، الماوس، لوحة المفاتيح..الخ.
التطابق بين كائنات البرمجة والكائنات في الحياة الفعلية هو النتيجة المفرحة لدمج البيانات والاعضاء الدالية.إنه مفهوم مهم فالعديد من الكائنات الفعلية ، على الاقل المهمة منها ، لها وضعية State (خصائص يمكن ان تتغير) وقدرات Abilities ( أشياء يمكن ان تقوم بها).
مثال على ذلك : يمكن ان يكون المصعد في عمارة ما في الوضعية التالية : موجود في الطابق الثالث ويحتوى على أربعة أشخاص وقد كبس الاشخاص على أزرار الطوابق 7 و 11و 15 ويمكن للمصعد القدرات التالية : التحرك الى الاعلى او الاسفل ، فتح الابواب وغلقها ، أحتساب الطابق الذى يجب الانتقال له أو التوقف عنده.
فيC ++ البيانات: هي رقم الطابق الحالي ، عدد الاشخاص فيه ، لائحة الازرار المضغوطة
الاعضاء الدالية فيه : التحرك الى الاسفل، التحرك الى الاعلى ن فتح الابواب ، اغلاق الابواب، الحصول على المعلومات ، احتساب المكان الواجب الانتقال اليه.
تدمج البرمجة الكائنية المنحى المرادف البرمجى للوضعيات والقدرات التى يتم تمثيلها في البرنامج بالبيانات والدالات في كينونة واحدة تسمى كائن ، النتيجة هى كينونة برمجية تتطابق بشكل جيد مع الكثير من الكائنات في الحياة الفعلية.
الفئـــــــــــــات :
الكائنات فيOOP هي مثيلات من الفئات والفئة هي وصف لعدد الكائنات المتشابهة فموقع الحوار المتمدن والعراق للجميع وصوت العراق هي اعضاء في فئة المواقع العراقية. انهم اعضاء في الفئة يتمتعون ببعض الخصائص.
اذن يمكن تسمية الكائن ب ( مثيل INSTANCE) للفئة لأنه مثال حقيقى للمواصفات التى تزودها تلك الفئة ويؤدي هذا الى اسم شائع الاستعمالات لبيانات الكائن : بيانات مثيلة السبب وراء هذه التسمية هو وجود بيانات منفصلة لكل كائن، أي لكل مثيل للفئة .

ميزات اللغات الكائنية المنحى:
الوارثـــة:
تؤدي فكرة الفئات الى فكرة الوراثة inheritance ، نحن نستعمل في حياتنا اليومية مفهوم الفئات بعد تقسيمه الى فئات فرعية ، ونعرف ان فئة الحيوانات تنقسم الى الثدييات والبرمائيات والحشرات والطيور وغيرها وتنقسم فئة المركبات الى سيارات وشاحنات وباصات ودراجات نارية.
المبدأ من هذا التقسيم هو ان كل فئة فرعية تملك خصائص مشتركة مع الفئة التى تنحدر منها ، تحتوى السيارات والشاحنات والباصات والدراجات النارية على دواليب ومحرك ويتم استعماله لنقل الاشخاص او الاشياء ، انها الخصائص التى تعرف المركبات .
اضافة الى هذه الخصائص المشتركة مع الاعضاء الاخرى للفئة ، تملك كل فئة فرعية خصائص خاصة بها :
الباصات تحتوى على مقاعد لكثير من الاشخاص
الشاحنات تحتوى على مساحة انقل احمال ثقيلة
الدراجات النارية تحتوى على مقعد للسائق.
من هنا جاءت تسمية الفئة الاصلية بالفئة القاعـــــدة base class والفئات ذات الخصائص المشتركة تسمى الفئات المشتقـــة derived classes.
أضافة لما تقدم فهناك ميزات اخرى أهمها:
قابليــــة اعادة الاستعمال Reusability والمقصود بها أمكانية توزيع الفئات على المبرمجين الاخرين لكي يستعملونها في برامجهم بعد ان تتم كتابتها وإزالة العلل من تلك الفئات. ان سهولة إعادة استعمال البرامج الموجودة هو فائدة كبيرة وهي الاكبر فيOOP حيث تجد معظم الشركات ان اعادة استعمال الفئات في مشروع أخر يزود توفيرا كبيرا على قيمة الاستثمار .
باختصار، OOP هي وسيلة لتنظيم البرامج ،المنحى الكائني يتعلق بكيفية تصميم البرامج وليس في تفاصيل عبارات الرنامج ، بشكل خاص ن البرامج الكائنية المنحى مصممة على أساس الكائنات التى تحتوي على بيانات ودوالات وهذه الدالات تعمل على البيانات

مع التمنيات بالاستفادة من الموضوع اعلاه
مبرمج ومحلل نظم متقاعد
 
عودة
أعلى