مقدمة
في الدرس السابق تعرفنا على التجريد (Abstraction)، وعرفنا كيف يساعد على إخفاء تفاصيل التنفيذ والتركيز على الوظائف الأساسية.
ومن الأدوات المهمة التي توفرها Java لتحقيق التجريد وتنظيم تصميم البرامج الواجهات (Interfaces).
ما هي الواجهة (Interface)؟
الواجهة هي نوع خاص في Java يحدد مجموعة من العمليات التي يمكن للفئات تنفيذها.
يمكن النظر إليها على أنها عقد (Contract) يحدد ما يجب أن توفره الفئة، بينما تترك تفاصيل التنفيذ للفئة نفسها.
لماذا نستخدم الواجهات؟
تساعد الواجهات على تحديد سلوك مشترك بين فئات مختلفة.
وقد تكون هناك فئات لا تشترك في نفس الفئة الأساسية، لكنها تحتاج إلى تنفيذ مجموعة معينة من الوظائف.
في هذه الحالة يمكن استخدام واجهة مشتركة.
تنفيذ الواجهة
يمكن للفئة أن تقوم بتنفيذ واجهة باستخدام الكلمة implements.
وعند تنفيذ الواجهة، يجب على الفئة توفير التنفيذ المطلوب للعمليات التي تفرضها الواجهة، وفقًا لقواعد Java.
الواجهات وتعدد الأشكال
يمكن استخدام الواجهات مع تعدد الأشكال (Polymorphism).
فيمكن التعامل مع كائنات من فئات مختلفة من خلال نوع الواجهة المشترك بينها.
وهذا يجعل البرنامج أكثر مرونة ويسهل إضافة فئات جديدة مستقبلًا.
الواجهة الواحدة والفئات المتعددة
من المزايا المهمة في Java أن الفئة يمكنها تنفيذ أكثر من واجهة.
وهذا يسمح للفئة بتجميع سلوكيات مختلفة دون الحاجة إلى الوراثة من عدة فئات.
الواجهات والقواعد المشتركة
يمكن استخدام الواجهة عندما نريد فرض مجموعة من الوظائف على عدة فئات.
فمثلًا قد توجد واجهة تحدد أن أي فئة تستخدمها يجب أن توفر وظيفة معينة، بينما تحدد كل فئة الطريقة المناسبة لتنفيذ هذه الوظيفة.
استخدام الواجهات في المشاريع
تستخدم الواجهات في العديد من التطبيقات، مثل:
تطبيقات الهواتف
الألعاب
الأنظمة الإدارية
التطبيقات المكتبية
المشاريع البرمجية الكبيرة
فوائد الواجهات
من أهم فوائدها:
تنظيم تصميم البرنامج
تحقيق قدر أكبر من التجريد
دعم تعدد الأشكال
تقليل الاعتماد المباشر بين الفئات
تسهيل إضافة فئات جديدة
تحديد سلوك مشترك بطريقة واضحة
أخطاء شائعة عند المبتدئين
من الأخطاء الشائعة:
الخلط بين الواجهة والفئة العادية
الخلط بين extends وimplements
محاولة إنشاء كائن من واجهة مباشرة
عدم تنفيذ العمليات المطلوبة من الواجهة
استخدام الواجهات دون وجود حاجة حقيقية
ملخص الدرس
تعرفنا في هذا الدرس على الواجهات (Interfaces) في Java، وعرفنا كيف يمكن استخدامها لتحديد سلوك مشترك بين الفئات، وكيف تساعد في تحقيق التجريد وتعدد الأشكال وبناء برامج أكثر مرونة وتنظيمًا.
في الدرس الثاني والثلاثون سنتعرف على الكلمات المفتاحية static وfinal في Java، وسنفهم كيفية استخدامها مع المتغيرات والدوال والفئات.



