مقدمة
في الدرس السابق تعرفنا على تعدد الأشكال (Polymorphism)، وعرفنا كيف يمكن للكائنات أن تتعامل مع العملية نفسها بطرق مختلفة.
ومن المفاهيم الأساسية الأخرى في البرمجة كائنية التوجه التجريد (Abstraction).
يساعد التجريد على التركيز على ما يفعله الكائن بدلًا من التركيز على التفاصيل الداخلية لكيفية تنفيذ المهمة.
---
ما هو التجريد؟
التجريد هو أسلوب يسمح بإخفاء التفاصيل الداخلية المعقدة وإظهار الأجزاء المهمة فقط للمستخدم أو لبقية البرنامج.
فمثلًا عند استخدام جهاز معين، قد تعرف الوظيفة التي يؤديها دون الحاجة إلى معرفة جميع التفاصيل الداخلية التي تجعله يعمل.
الفكرة نفسها يمكن تطبيقها في البرمجة.
---
لماذا نستخدم التجريد؟
عندما تصبح البرامج كبيرة، قد تحتوي بعض العمليات على تفاصيل كثيرة لا يحتاج باقي البرنامج إلى معرفتها.
يمكن إخفاء هذه التفاصيل خلف واجهة واضحة، بحيث يتعامل الجزء الآخر من البرنامج مع الوظائف المهمة فقط.
وهذا يقلل من تعقيد البرنامج.
---
الفئات المجردة (Abstract Classes)
توفر Java مفهوم الفئة المجردة (Abstract Class).
يمكن استخدام الفئة المجردة كتصميم عام للفئات الأخرى، وقد تحتوي على دوال مجردة تحدد ما يجب على الفئات المشتقة توفيره.
ولا يمكن إنشاء كائن مباشر من الفئة المجردة نفسها.
---
الدوال المجردة (Abstract Methods)
الدالة المجردة هي دالة يتم تحديدها دون تقديم تنفيذها الكامل داخل الفئة المجردة.
وتقوم الفئات المشتقة بتوفير التنفيذ المناسب لهذه الدالة.
وهذا يسمح بفرض سلوك معين على الفئات التي ترث من الفئة المجردة.
---
الواجهات (Interfaces)
تدعم Java أيضًا مفهوم الواجهات (Interfaces).
الواجهة تحدد مجموعة من العمليات التي يمكن للفئة تنفيذها.
وتساعد الواجهات على تصميم برامج أكثر مرونة، خصوصًا عندما نحتاج إلى تحديد سلوك مشترك بين فئات مختلفة.
---
الفرق بين التجريد والتغليف
هناك فرق بين المفهومين:
التغليف (Encapsulation): يهتم بحماية البيانات وتنظيم الوصول إليها.
التجريد (Abstraction): يهتم بإخفاء التفاصيل غير الضرورية وإظهار الوظائف المهمة.
كلاهما يساعد على بناء برامج أكثر تنظيمًا.
---
أهمية التجريد في OOP
التجريد من المفاهيم الأساسية في البرمجة كائنية التوجه، ويساعد على تقليل تعقيد المشاريع الكبيرة.
كما يجعل تصميم البرامج أكثر وضوحًا، ويسمح للمبرمج بالتعامل مع الوظائف الأساسية دون الحاجة إلى معرفة تفاصيل تنفيذها.
---
استخدام التجريد في المشاريع
يستخدم التجريد في العديد من التطبيقات، مثل:
- تطبيقات الهواتف.
- الألعاب.
- الأنظمة الإدارية.
- التطبيقات المكتبية.
- الأنظمة البرمجية الكبيرة.
---
فوائد التجريد
يوفر التجريد العديد من المزايا، منها:
- تقليل تعقيد الكود.
- إخفاء التفاصيل غير الضرورية.
- تحسين تنظيم البرنامج.
- تسهيل تطوير المشاريع.
- إنشاء تصميمات أكثر مرونة.
---
أخطاء شائعة عند المبتدئين
من الأخطاء التي يقع فيها المبتدئون:
- الخلط بين التجريد والتغليف.
- استخدام الفئات المجردة دون الحاجة إليها.
- محاولة إنشاء كائن مباشرة من فئة مجردة.
- عدم فهم الفرق بين Abstract Class وInterface.
لذلك من الأفضل فهم الهدف من التجريد قبل استخدامه في المشاريع.
---
ملخص الدرس
تعرفنا في هذا الدرس على التجريد (Abstraction) في Java، وعرفنا كيف يساعد على إخفاء التفاصيل غير الضرورية والتركيز على الوظائف الأساسية، كما تعرفنا على الفئات المجردة والدوال المجردة والواجهات.
في الدرس الحادي والثلاثون سنتعرف على الواجهات (Interfaces) بشكل أعمق، وسنفهم كيف يمكن استخدامها لتحديد سلوك مشترك بين الفئات.



