فئة الملخص مقابل الواجهة في C #: الفرق والمقارنة

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

الوجبات السريعة الرئيسية

  1. فئة الملخص هي فئة لا يمكن إنشاء مثيل لها ويمكن أن تحتوي على طرق مجردة وغير مجردة.
  2. الواجهة عبارة عن مخطط لفئة ويمكن أن تحتوي فقط على طرق مجردة.
  3. يمكن للفئة أن ترث فئة مجردة واحدة فقط ولكن يمكنها تنفيذ واجهات متعددة.

فئة مجردة مقابل الواجهة في C #

In سرعة، فئة الملخص أسرع مقارنة بالواجهة في C #. في السابق ، يمكنك تحديد الحقول ، بينما في Interface لا يمكنك ذلك. يمكن لفئة مجردة واحدة أن تمد واجهة واحدة فقط ، بينما يمكن لواجهة واحدة أن تمد واجهات متعددة. الأول يحتوي على أعضاء البيانات ، في حين أن الأخير لا يحتوي.

فئة الملخص مقابل الواجهة في لغة C.

الوراثة المتعددة غير ممكنة في فئة مجردة ، في حين أن الواجهة يمكن أن تجعل العديد من الميراث ممكنًا.

جدول المقارنة

الميزاتفئة مجردةالسطح البيني
تعريففئة ذات طرق مجردة توفر التنفيذ الجزئي وتجبر الفئات الفرعية على تنفيذ الطرق المتبقيةعقد يتضمن فقط الطريقة وإقرارات الملكية ولكن لا يوجد تنفيذ
الهدفيستخدم لتحديد قاعدة مشتركة للفئات الفرعية وفرض وظائف محددةيُستخدم لتحديد عقد يمكن للفئات المختلفة تنفيذه، مما يعزز إعادة استخدام التعليمات البرمجية والمرونة
تطبيقيمكن أن تحتوي على حقول وخصائص ومنشئات وطرق مجردة وطرق ملموسةيمكن أن تحتوي فقط على الخصائص والأساليب والأحداث
وراثةيمكن للفئة أن ترث من فئة مجردة واحدة فقطيمكن للفصل تنفيذ واجهات متعددة
معدِّلات الوصوليمكن أن تحتوي الأساليب المجردة على أي معدل وصول (عام، محمي، خاص)الأساليب والخصائص في الواجهات عامة ضمنيًا
إمكانية الحصول على لحظةلا يمكن إنشاء مثيل للفئات المجردة مباشرةلا يمكن إنشاء مثيل للواجهات مباشرة
مستوى التجريديمكن أن يوفر تنفيذًا أكثر اكتمالاً من الواجهةيوفر عقدًا أقل تحديدًا من فئة مجردة
مثالالحيوان (فئة مجردة) مع الأساليب المجردة Move() و Eat()IShape (الواجهة) مع الأساليب CalculateArea() وCalculatePerimeter()

ما هي فئة الملخص في C #؟

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

وفيما يلي تفصيل لخصائصه الرئيسية:

فريف:

  • فئة مصممة لتكون موروثة من قبل فئات أخرى.
  • يحتوي على طريقة مجردة واحدة على الأقل بدون تنفيذ.
  • يوفر قاعدة مشتركة ووظائف منفذة جزئيًا للفئات الفرعية.
اقرأ أيضا:  مقبس مقابل فئة ServerSocket: الفرق والمقارنة

الغرض:

  • فرض وظائف وسلوكيات محددة في الفئات الفرعية.
  • تعزيز إعادة استخدام التعليمات البرمجية من خلال توفير قاعدة مشتركة للفئات ذات الصلة.
  • تشجيع تنظيم الكود وهيكله.
  • تحسين إمكانية قراءة التعليمات البرمجية وإمكانية صيانتها.

الميزات الرئيسية:

  • يمكن أن تحتوي على حقول وخصائص ومنشئات وأساليب محددة (مع التنفيذ) وأساليب مجردة (بدون تنفيذ).
  • تحدد الأساليب المجردة الوظائف التي يجب أن تنفذها الفئات الفرعية.
  • يمكن للفئات الفرعية أن ترث من فئة مجردة واحدة فقط.
  • لا يمكن إنشاء مثيل للفئات المجردة مباشرة.

الفوائد :

  • يعزز إعادة استخدام التعليمات البرمجية ويقلل من تكرار التعليمات البرمجية.
  • يفرض السلوك والوظائف المتسقة عبر الفئات ذات الصلة.
  • يحسن تنظيم التعليمات البرمجية وقابلية الصيانة.
  • يوفر فصلًا واضحًا بين الوظيفة المجردة والملموسة.

أمثلة:

  • الحيوان (فئة مجردة) مع الأساليب المجردة Move() و Eat().
  • الشكل (فئة مجردة) باستخدام الأساليب المجردة CalculateArea() وCalculatePerimeter().

متى تستخدم فئة مجردة:

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

ما هي الواجهة في C #؟

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

فيما يلي تفصيل لميزاته الرئيسية:

فريف:

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

الغرض:

  • تعزيز إعادة استخدام التعليمات البرمجية وتحسين قابلية الصيانة من خلال تحديد مجموعة مشتركة من الوظائف التي يمكن للفئات المختلفة تنفيذها.
  • قم بفصل تفاصيل التنفيذ للفئات المختلفة، مما يجعلها أكثر استقلالية ومرونة.
  • تقديم مواصفات واضحة وموجزة للسلوك المتوقع للفصل.
  • تمكين الفئات المختلفة من تنفيذ نفس الوظيفة بطرق مختلفة.

الميزات الرئيسية:

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

الفوائد :

  • يعزز إعادة استخدام التعليمات البرمجية ويقلل من تكرار التعليمات البرمجية.
  • يحسن مرونة التعليمات البرمجية وقابلية الصيانة.
  • يشجع على الاقتران الفضفاض والفصل الأفضل للمخاوف.
  • يجعل التعليمات البرمجية أكثر قابلية للقراءة والفهم.
اقرأ أيضا:  تعزيز منشور مقابل إنشاء إعلان على Facebook: الفرق والمقارنة

أمثلة:

  • IShape (الواجهة) باستخدام الأساليب CalculateArea() وCalculatePerimeter().
  • IComparable (الواجهة) مع الطريقة CompareTo().
  • ICloneable (واجهة) مع طريقة Clone ().

متى تستخدم الواجهة:

  • عندما تريد تحديد مجموعة من الوظائف التي يمكن للفئات المختلفة تنفيذها بطرق مختلفة.
  • عندما تريد تعزيز الاقتران الفضفاض والمرونة بين الفئات.
  • عندما تريد تشجيع إعادة استخدام التعليمات البرمجية وتقليل تكرار التعليمات البرمجية.
  • عندما تريد إنشاء عقد عام يحدد السلوك المتوقع للفئة.
الواجهة

الاختلافات الرئيسية بين فئة الملخص والواجهة في C #

  1. تطبيق:
    • فئة مجردة: يمكن للفئة المجردة تنفيذ الأساليب والحقول والخصائص جزئيًا أو كليًا.
    • الواجهة: تحدد الواجهة عقدًا من الأساليب والخصائص التي يجب أن توفرها فئات التنفيذ ولكنها لا تحتوي على أي تفاصيل تنفيذ.
  2. وراثة:
    • فئة مجردة: يمكن أن يرث الفصل من فئة مجردة واحدة فقط باستخدام وراثة واحدة في C#.
    • الواجهة: يمكن للفصل تنفيذ واجهات متعددة، مما يسمح بتوارث الواجهة المتعددة.
  3. الصانعين:
    • فئة مجردة: يمكن أن تحتوي فئة مجردة على مُنشئات، والتي يمكن استخدامها لتهيئة حالة الفئة.
    • الواجهة: لا يمكن أن تحتوي الواجهات على مُنشئات لأنها لا تحدد الحالة أو السلوك الخاص بالمثيل.
  4. معدِّلات الوصول:
    • فئة مجردة: يمكن أن تحتوي الفئات المجردة على معدلات وصول للطرق والحقول والخصائص، مما يسمح بمزيد من التحكم في الرؤية وإمكانية الوصول.
    • الواجهة: جميع أعضاء الواجهة عامة ضمنيًا ولا يمكن أن يكون لديهم معدّلات وصول.
  5. مجال:
    • فئة مجردة: يمكن أن تحتوي الفئات المجردة على حقول يمكنها تخزين البيانات وإدارتها داخل الفصل.
    • الواجهة: لا يمكن أن تحتوي الواجهات على حقول؛ إنهم يحددون فقط توقيعات الطريقة والممتلكات.
  6. وراثة متعددة:
    • فئة مجردة: في حين أن فئة يمكن أن ترث من فئة مجردة واحدة، فإنه يمكن أيضا تنفيذ واجهات متعددة، مما يسمح لشكل محدود من الميراث المتعدد.
    • الواجهة: تُستخدم الواجهات لتحقيق وراثة متعددة من خلال تمكين الفصل من تنفيذ واجهات متعددة.
  7. استخدم حالات:
    • فئة مجردة: تعتبر الفئات المجردة مناسبة عندما تريد توفير قاعدة مشتركة مع تنفيذ مشترك للفئات ذات الصلة، وعندما تتوقع أن يكون لدى الفئات بعض السلوك المشترك.
    • الواجهة: تحدد الواجهات عقدًا للفئات التي قد لا يكون لها قاعدة مشتركة ولكنها تحتاج إلى الالتزام بمجموعة محددة من السلوكيات أو الوظائف.
مراجع حسابات
  1. https://csharp.net-tutorials.com/classes/abstract-classes/
  2. https://dl.acm.org/doi/abs/10.1145/512035.512041

آخر تحديث: 11 ديسمبر 2023

النقطة 1
طلب واحد؟

لقد بذلت الكثير من الجهد في كتابة منشور المدونة هذا لتقديم قيمة لك. سيكون مفيدًا جدًا بالنسبة لي ، إذا كنت تفكر في مشاركته على وسائل التواصل الاجتماعي أو مع أصدقائك / عائلتك. المشاركة هي ♥ ️

20 أفكار حول "الفئات المجردة مقابل الواجهة في C#: الفرق والمقارنة"

  1. يوفر تفصيل وقت استخدام فئة مجردة أو واجهة رؤى قيمة للمطورين. من الضروري فهم السيناريوهات العملية التي يكون كل منها مفيدًا للغاية.

    رد
  2. أجد أن هذا الشرح للفئات والواجهات المجردة في لغة C# مفيد جدًا وشامل. إنه مصدر رائع لأي شخص يتعلم عن البرمجة الموجهة للكائنات في C#.

    رد
  3. لست مقتنعًا بأن الفئات المجردة دائمًا أفضل من الواجهات. كان يجب أن يأخذ الشرح في الاعتبار أمثلة من العالم الحقيقي وحالات الاستخدام العملي لتوضيح الاختلافات بينهما.

    رد
    • أتفهم وجهة نظرك، لكن تركيز المقالة ينصب بشكل أساسي على الفروق النظرية. يمكن للأمثلة الواقعية أن تعزز بالفعل فهم هذه المفاهيم.

      رد
    • وأنا أتفق مع جيمس. المزيد من الأمثلة العملية من شأنها أن تجعل المقارنة أكثر تأثيرًا وملاءمة للمطورين.

      رد
  4. في حين أن المقالة غنية بالمعلومات، أعتقد أنها يمكن أن تستفيد من تفصيل أكثر إيجازًا للميزات الرئيسية وحالات استخدام الفئات والواجهات المجردة في C#.

    رد
    • أنا لا أتفق مع هذا بكل احترام. يعد التقسيم المتعمق ضروريًا لفهم المفاهيم بشكل كامل. من الأفضل أن يكون لديك معلومات أكثر من أقل عندما يتعلق الأمر بالبرمجة.

      رد
  5. تم توضيح التمييز الواضح بين الفئات المجردة والواجهات في لغة C# بشكل جيد في هذه المقالة. إنه مورد أساسي لأي شخص يتعمق في OOP في C#.

    رد
    • قطعاً! توفر الأمثلة المقدمة للفئات والواجهات المجردة وضوحًا ممتازًا. أساس عظيم لفهم هذه المفاهيم.

      رد
    • إن عمق المقالة حول التجريد والوراثة في لغة C# يمهد الطريق لفهم شامل للفئات والواجهات المجردة. قراءة قيمة.

      رد
    • يتم استكشاف التطبيقات العملية للفئات والواجهات المجردة بدقة في هذه المقالة. قراءة ثرية بالفعل.

      رد
    • بالفعل! من المنعش أن تجد مثل هذا التفسير الثاقب للفئات والواجهات المجردة. هذا مورد قيم للمبرمجين.

      رد
  6. لم أكن أتوقع مثل هذا الشرح الشامل والعالي الجودة للفئات والواجهات المجردة. ومن الواضح أن المؤلف على دراية ودراية عميقة بهذه المفاهيم.

    رد
  7. توفر هذه المقالة شرحًا واضحًا ومفصلاً للفئات والواجهات المجردة في لغة C#. إنها وسيلة تجديد رائعة للمطورين المتمرسين ومصدر تعليمي ممتاز للمبتدئين.

    رد

اترك تعليق

هل تريد حفظ هذه المقالة لوقت لاحق؟ انقر فوق القلب الموجود في الزاوية اليمنى السفلية للحفظ في مربع المقالات الخاصة بك!