ما هي الواجهة؟
عقد يحدّد طرقًا يجب على الصنف تنفيذها، دون تحديد كيفيّتها — يضمن سلوكًا مشتركًا.
// Java
interface Drawable {
void draw();
}
class Circle implements Drawable {
public void draw() {
System.out.println("رسم دائرة");
}
}
في Python (عبر ABC)
from abc import ABC, abstractmethod
class Payable(ABC):
@abstractmethod
def pay(self, amount): ...
class CreditCard(Payable):
def pay(self, amount):
print(f"دفع {amount} بالبطاقة")
عدّة واجهات
صنف واحد يمكنه تنفيذ عدّة واجهات (بخلاف الوراثة المفردة في كثير من اللغات):
class Smartphone implements Camera, Phone, GPS { }
الفائدة
- يفرض عقدًا موحّدًا على أنواع مختلفة.
- يتيح تعدّد الأشكال: تتعامل مع
Payableدون معرفة النوع الفعلي.
واجهة مقابل صنف مجرّد
- واجهة: عقد فقط (غالبًا بلا حالة)، عدّة واجهات.
- صنف مجرّد: قد يحوي تنفيذًا وحالة، وراثة واحدة.
🎯 التالي: الأصناف المجرّدة.