0Pricing
C# Academy · درس

مقدمة إلى الواجهات

تعلّم كيف تحدد الواجهات عقودًا للفئات وتعزز مرونة التعليمات البرمجية

مقدمة إلى الواجهات درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 1 من أصل 6. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 6 دروس في المجموع.

مقدمة عن الواجهات

مقدمة عن الواجهات

مرحبًا بكم في الدرس الأول ضمن مفاهيم البرمجة المتقدمة! ستتعلمون في هذا الدرس الواجهات، والغرض منها، وكيفية استخدامها لتحقيق التجريد والمرونة في برامج C# الخاصة بكم. لنبدأ!

مقدمة إلى الواجهات — رسم توضيحي 1

ما الواجهة؟

ما الواجهة؟

الواجهة هي عقد يحدد مجموعة من الأساليب والخصائص التي يجب على الفئة تنفيذها. ولا توفر الواجهة تنفيذًا بحد ذاتها، لكنها تضمن التزام أي فئة تنفذها بتصميم محدد.

مثال: قد تحدد واجهة لمركبة «Vehicle» أساليب مثل Start() وStop()، ويجب على جميع المركبات تنفيذها.

نقطة مهمة: تتيح لكم الواجهات تصميم شيفرة مرنة وقابلة لإعادة الاستخدام من خلال فصل السلوك عن التنفيذ.

تعريف واجهة

تعريف واجهة

لتعريف واجهة في C#، استخدم الكلمة الأساسية interface. مثال:

تلميح: convention، تبدأ أسماء الواجهات في C# بالحرف I.

using System;

interface IVehicle {
    void Start();
    void Stop();
}

تنفيذ واجهة

تنفيذ واجهة

لتنفيذ واجهة، يجب على الفئة تعريف جميع الأساليب والخصائص المُعلنة في الواجهة. مثال:

نقطة مهمة: يمكن للفئة تنفيذ عدة واجهات لدعم سلوكيات متعددة.

using System;

interface IVehicle {
    void Start();
    void Stop();
}

class Car : IVehicle {
    public void Start() {
        Console.WriteLine("Car is starting.");
    }

    public void Stop() {
        Console.WriteLine("Car is stopping.");
    }
}

class Program {
    static void Main() {
        IVehicle myCar = new Car();
        myCar.Start();
        myCar.Stop();
    }
}

لماذا نستخدم الواجهات؟

لماذا نستخدم الواجهات؟

توفر الواجهات عدة مزايا:

  • التجريد: تعريف السلوك دون تحديد طريقة التنفيذ.
  • المرونة: يمكن للفئة تنفيذ عدة واجهات، مما يتيح لها دعم أدوار متعددة.
  • الاتساق: فرض بنية مشتركة على الفئات المرتبطة.

تلميح: استخدموا الواجهات عندما تريدون تعريف عقد مشترك دون فرض طريقة الوفاء به.

دمج عدة واجهات

دمج عدة واجهات

يمكن للفئة تنفيذ عدة واجهات لدمج مجموعات مختلفة من السلوكيات. مثال:

using System;

interface IVehicle {
    void Start();
    void Stop();
}

interface IRadio {
    void PlayMusic();
}

class Car : IVehicle, IRadio {
    public void Start() {
        Console.WriteLine("Car is starting.");
    }

    public void Stop() {
        Console.WriteLine("Car is stopping.");
    }

    public void PlayMusic() {
        Console.WriteLine("Playing music.");
    }
}

class Program {
    static void Main() {
        Car myCar = new Car();
        myCar.Start();
        myCar.PlayMusic();
        myCar.Stop();
    }
}

تحدٍّ تطبيقي

تحدٍّ تطبيقي

أنشئ واجهة باسم IShape تحتوي على أسلوب باسم CalculateArea(). نفّذ هذه الواجهة في الفئتين Rectangle وCircle. مثال:

using System;

interface IShape {
    double CalculateArea();
}

class Rectangle : IShape {
    public double Width { get; set; }
    public double Height { get; set; }

    public double CalculateArea() {
        return Width * Height;
    }
}

class Circle : IShape {
    public double Radius { get; set; }

    public double CalculateArea() {
        return Math.PI * Radius * Radius;
    }
}

class Program {
    static void Main() {
        IShape rectangle = new Rectangle { Width = 5, Height = 4 };
        IShape circle = new Circle { Radius = 3 };

        Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
        Console.WriteLine("Circle Area: " + circle.CalculateArea());
    }
}

أفضل الممارسات لاستخدام الواجهات

أفضل الممارسات لاستخدام الواجهات

إليك بعض أفضل الممارسات:

  • استخدم الواجهات لتعريف العقود التي يجب على الفئات اتباعها.
  • فضّل الواجهات على الوراثة للفئات غير المرتبطة التي تتشارك سلوكًا مشتركًا.
  • اجعل الواجهات مركّزة، وتجنب تضمين أساليب أو خصائص غير ضرورية.

تلميح: ينبغي أن تصف الواجهات ما تفعله الفئة، لا كيفية فعلها لذلك.

أحسنتم!

أحسنتم!

تهانينا! لقد تعلمتم أساسيات الواجهات وكيفية استخدامها لتحقيق التجريد والمرونة في برامجكم. في الدرس التالي، سنتعمق في الفئات المجرّدة ونتعلم كيف تختلف عن الواجهات. واصلوا البرمجة!

مقدمة إلى الواجهات — رسم توضيحي 10

الأسئلة الشائعة

هل درس «مقدمة إلى الواجهات» مجاني؟

نعم — نص درس «مقدمة إلى الواجهات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 6 دروس في المجموع.

ماذا ستتعلم في «مقدمة إلى الواجهات»؟

تعلّم كيف تحدد الواجهات عقودًا للفئات وتعزز مرونة التعليمات البرمجية تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 6.

كم من الوقت يستغرق درس «مقدمة إلى الواجهات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقدمة إلى الواجهات
  2. الفئات المجرّدة
  3. الأعضاء والأساليب الساكنة
  4. استكشاف التعدادات والبُنى
  5. المفوضات والأحداث
  6. العمل مع مجموعات البيانات: القوائم والقواميس وقوائم الانتظار
← العودة إلى C# Academy