برمجة كائنية التوجه
أنماط البرمجة |
---|
|
البرمجة كائنية التوجه Object-oriented programming - OOP (و يطلق عليها احيانا اسم : برمجة غرضية التوجه ، أو برمجة شيئية مع أن هذه الأخيرة لا تعتبر ترجمة محبذة ) عبارة عن نمط برمجة متقدم، وفيه يقسم البرنامج إلى وحدات تسمى الكائنات (Objects)، كل كائن عبارة عن حزمة (تعليب) من البيانات (المتغيرات والثوابت) والدوال ووحدات التنظيم وواجاهات الأستخدام. ويتم بناء البرنامج بواسطة أستخادم الكائنات وربطها مع بعض وواجهة البرنامج الخارجية بأستخدام هيكيلة البرنامج وواجاهات الأستخدام الخاصة بكل كائن.
أسماء عربية أخرى:
- برمجة موجهة
- برمجة كائنية (برمجة كينونة)
- برمجة كائنية التوجه
- برمجة غرضية التوجه
- برمجة كائنية المنحى (أو المنحى)
- برمجة بالعناصر
البرمجة الكائنية عبارة عن نمط برمجة متخصص في المفاهيم التالية:
- الكائنات Objects - حزم وتعليب البيانات والدوال الوظيفية معاً في وحدات تعمل ضمن برنامج نشط. الكائنات هي أساس هيكلية برمجة الحاسوب الشيئية
مثال علي ما سبق :
لو عندي عده اجزاء للبرنامج مستقله جزء مثلا فيه الداله الخاصه بالادخال للبيانات
وجزء آخر به داله مسئوله عن العرض وجزء آخر به داله مثلا مسئوله عن حساب حجم المثلث (اللي انا ادخلت اطوال اضلاعه في اول جزء) ممكن من خلال اي جزء استدعي الجزء التاني او استخدم الداله اللي جواه.
- التجريد Abstraction - قدرة البرنامج على تجاهل بعض واجهات المعلومات المتلاعبة، أي التركيز على المفهوم الأساسي للكائن وهيكليته النظرية وتجريدة من طريقة العمل النهائية والتوجهات الخارجية.
- التغليف Encapsulation - التأكد أن المستخدم لا يستطيع أن يغير البيانات الداخلية لكائن بطريقة مفاجئة، فقط دوال الكائن الداخلية يسمح لها بتعديل حالة الكائن وبياناته. أي أن لايمكن التلاعب بالكائن وتغير معلوماته بأي طريقة بل أن هناك واجهة أستخدام خاصة يضعها المبرمج ومن خلالها يمكن تغيير بيانات الكائن الداخلية وحالته.
- تعدد الأوجهة Polymorphism - بدلاُ من أستدعاء الإجرائات الفرعية مباشرة، تستطيع البرمجة الشيئية إرسال رسائل، الإجراء المعين الذي يتم نداءه نتيجة الرسالة يعتمد على نوع الكائن الذي تم الأرسال له. أي أنه بأستخدام نفس أسم الأستدعاء يمكن أستدعاء إجراءات ودوال مختلفة إعتماداً على نوع الكائن.
- الوراثة Inheritance - يستطيع الكائن وراثة خصائص كائن معين والزيادة عليها دون أن يتأثر الكائن الأصلي. فقد يكون هناك كائن أسمه مركبة في الخصائص العامة لكل المركبات مثل الأسم واللون ورقم التسجيل، الكائن الطائرة ممكن أن يرث الكائن مركبة ويضيف عليه خصائص الطائرة، كذلك يمكن أن يكون هناك مثلاً كائن مربع فيه خصائص الطول والعرض ويمكن للكائن مكعب أن يرث من المربع ويضيف عليه خاصائص العمق والحجم.
مثال على تعددية الأوجهة : إذا أفترضنا أن المتغير مركبة يشير إلى كائن أما أن يكون سيارة سفينة أو طائرة.فإذا أردنا في المثال للطائرة أن تطير وللسيارة أن تمشي وللسفينة أن تبحر فعلينا أولاً معرفة نوع الكائن ثم إعطاء الأمر أي إذا كان مركبة هو كائن من نوع سفينة فالمركبة يجب أن تبحر ، ولكن مع تعددية الأوجهة يمكننا أن ننشأ دالة واحدة في كل كائن أسمها تحرك (الدالة تحرك في السفينة تقوم بالأبحار والدالة تحرك في الطائرة تقوم بالطيران..الخ). الآن ليس يجب علينا أن نعرف نوع الكائن فكل ما علينا فعله هو نداء تحرك للمركبة هذا سيقوم بأستدعاء دالة تحرك الخاصة بالكائن الحالي فإذا كان الكائن سفينة فهذا يعني أن الدالة تحرك الخاصة بالسفينة ستسدعى والتي ستقوم بأبحار السفينة