ما هي البرمجة كائنية التوجه (OOP)
تعتبر البرمجة كائنية التوجه أسلوبا جديدا في إنشاء تطبيقات الحاسب والذي يتجاوز العديد من المشاكل التي قد نواجهها باستخدام أسلوب البرمجة التقليدية.
إن نوع البرمجة الذي تعرفنا عليه حتى الآن يسمى بالبرمجة الإجرائية procedural programming والذي ينتج عنه تطبيقات موحدة وهذا يعني أن جميع وظائف التطبيق موجودة ضمن عدد من الوحدات البرمجية وفي الغالب لن يكون هناك سوى وحدة برمجية واحدة أما في OOP.
الوضع مختلف فباستخدام OOP يمكننا استخدام العديد من وحدات الشيفرة بحيث تقدم وحدة وظائفها الخاصة وبحيث تكون هذه الوحدة مستقلة بصورة كاملة أو جزئية عن الوحدات الأخرى يوفر لنا هذا النهج المعياري للبرمجة جوانب برمجية عديدة بالإضافة إلى توفير الفرصة لإعادة استخدام الشيفرة في أكثر من تطبيق.
البرمجة كائنية التوجه (OOP):
ما هي البرمجة كائنية التوجه:
هي أسلوب برمجة يعتمد على تقسيم البرنامج إلى وحدات تسمى “الكائنات”. كل كائن عبارة عن حزمة من البيانات (المتغيرات والثوابت) والطرق (السلوكيات) ووحدات التنظيم وواجهات الاستخدام. تُبنى هذه الكائنات وتتفاعل مع بعضها البعض لتنفيذ وظائف البرنامج.
مبادئ البرمجة كائنية التوجه:
- التغليف: إخفاء تفاصيل تنفيذ الكائن داخله، مع إتاحة واجهة برمجة تطبيقات (API) للتفاعل معه.
- التجريد: التركيز على الوظائف الأساسية للكائن دون الحاجة إلى معرفة كيفية عملها.
- الوراثة: قدرة الكائنات على “وراثة” خصائصها من كائنات أخرى، مما يسهل إعادة استخدام الكود وتنظيمه.
- تعدد الأشكال: قدرة الكائنات من نفس النوع على الاستجابة لنفس الرسالة بطرق مختلفة.
مميزات البرمجة كائنية التوجه:
- سهولة إعادة الاستخدام: يمكن إعادة استخدام الكائنات في برامج مختلفة، مما يوفر الوقت والجهد.
- سهولة الصيانة: من السهل فهم وتعديل الكود كونه مقسمًا إلى وحدات مستقلة.
- سهولة التوسع: يمكن إضافة ميزات جديدة للبرنامج بسهولة دون الحاجة إلى تعديل الكود الموجود.
- قابلية الصيانة: من السهل إصلاح الأخطاء وتغيير سلوك الكائنات دون التأثير على بقية البرنامج.
- قابلية التمديد: يمكن توسيع البرنامج بسهولة بإضافة كائنات جديدة.
أمثلة على استخدام البرمجة كائنية التوجه:
- أنظمة التشغيل: تُستخدم الكائنات لتمثيل الملفات والمجلدات والعمليات والموارد الأخرى.
- تطبيقات الويب: تُستخدم الكائنات لتمثيل واجهات المستخدم والبيانات والعمليات التجارية.
- الألعاب: تُستخدم الكائنات لتمثيل الشخصيات والأشياء والعوالم الافتراضية.
- التطبيقات المحمولة: تُستخدم الكائنات لتمثيل واجهات المستخدم والبيانات والوظائف المحددة للجهاز.
لغات البرمجة كائنية التوجه:
- Java: لغة برمجة شائعة تُستخدم بكثرة في تطبيقات المؤسسات.
- C++: لغة برمجة قوية تُستخدم في الأنظمة عالية الأداء.
- Python: لغة برمجة سهلة التعلم تُستخدم في مجالات متنوعة مثل تعلم الآلة وتطوير الويب.
- C#: لغة برمجة تُستخدم في تطوير تطبيقات .NET.
- JavaScript: لغة برمجة تُستخدم في تطوير تطبيقات الويب الديناميكية.
موارد تعليمية:
- مُقدمة إلى البرمجة كائنية التوجه: https://www.youtube.com/watch?v=VpYGXupBokg
- دورة تعلم البرمجة كائنية التوجه في لغة بايثون: https://www.udemy.com/course/pythonoop/
- موقع أكاديمية حسوب – البرمجة كائنية التوجه: https://academy.hsoub.com/
وصف بشكل دقيق للبرمجة كائنية التوجه
ولكي نصف ذلك بصورة أدق تخيل تطبيقا ما ذا أداء عال في جهازك كسيارة السباق إن تطبيقنا الذي استخدمنا فيه تقنيات البرمجة التقليدية مشابه لسيارة السباق المكونة من وحدة واحدة فإذا أردنا أن نحسن من هذه السيارة فإن علينا إما استبدالها بسيارة أخرى جديدة وذلك بإرسالها إلى المصنع لكي يتمكن خبراء ميكانيك السيارات من تحديثها وإما أن نشتري واحدة جديدة أما إذا كنا قد استخدمنا تقنيات OOP في هذا التطبيق فإن ذلك مشابه لمجرد شراء محرك جديد من المصنع وإتباع تعليمات استبدال المحرك القديم بهذا الجديد.
إقرأ أيضا : أهم 6 أهداف من إنشاء لغة سي شارب (C#) ل Microsoft
يكون سير التنفيذ في التطبيقات التقليدية عادة بسيطا وخطيا حيث يتم تعديل التطبيق إلى الذاكرة ومن ثم بدء التنفيذ من النقطة A وإنهاء التنفيذ عند النقطة B ومن ثم إزالة التطبيق من الذاكرة وخلال هذا الطريق هناك العديد من الأشياء المستخدمة مثل الملفات ووسائط التخزين أو إمكانية بطاقة العرض لكن الجسم الرئيسي للمعالجة يتم في مكان واحد وخلال هذه الشيفرة سنجد العديد من عمليات معالجة البيانات وفقا لمبادئ رياضية ومنطقية وطرق معالجة البيانات تكون بسيطة وتستخدم أنواع بيانات بسيطة أيضا مثل القيم العددية والمنطقية لبناء تمثيلات للبيانات أكثر تعقيدا.
إن الأمور نادرا ما تسير في OOP بصورة خطية فعلى الرغم من أن تقنية OOP تحقق النتائج نفسها التي تحققها التقنيات التقليدية إلا أن تقنيات OOP معدة وفقا لبنية البيانات ومعانيها بالإضافة إلى التفاعل بين البيانات والبيانات الأخرى يبدو ذلك أن استخدام تقنيات OOP يتطلب جهدا أكبر في تصميم التطبيقات في الحقيقة إن هذا صحيح إلا أننا سنستفيد عندها من عدة مزايا كمجالات التوسع والتطوير المستقبلية فمتى استطعنا إنشاء نوع وأسلوب معين لاستخدامه في تطبيق ما فإن بإمكاننا استخدام نفس النوع والأسلوب في أي تطبيق أخر.