Ruby Academy · درس

الفئات المفتوحة والترقيع بالقرد

استكشفوا كيفية سماح Ruby بتعديل الفئات الموجودة وإضافة وظائف جديدة

الدرس 3 من 410 خطوة

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

تعديل الفئات أثناء التشغيل

الفئات المفتوحة وMonkey Patching

تتيح Ruby تعديل الفئات الموجودة أثناء التشغيل.

تُمكّن هذه الميزة، التي تُسمى «الفئات المفتوحة»، المطورين من توسيع السلوك أو تغييره ديناميكيًا.

الفئات المفتوحة والترقيع بالقرد — رسم توضيحي 1

ما الفئات المفتوحة؟

في Ruby، يمكنك إعادة فتح الفئات الموجودة وتعديلها.

ويتيح ذلك إضافة أساليب جديدة إلى الفئات المضمّنة أو الفئات التي يعرّفها المستخدم.

إضافة أساليب إلى فئة موجودة

أعد تعريف فئة ببساطة، ثم أضف إليها أساليب جديدة.

class String
  def shout
    self.upcase + '!!!'
  end
end

puts 'hello'.shout

تجاوز الأساليب (Monkey Patching)

يمكنك تجاوز الأساليب الموجودة في فئات Ruby.

class String
  def reverse
    'Reversed method overridden!'
  end
end

puts 'hello'.reverse

الحفاظ على سلوك الطريقة الأصلية باستخدام super

استخدم super للحفاظ على سلوك الطريقة الأصلية.

class String
  def reverse
    super + ' (custom behavior added)'
  end
end

puts 'hello'.reverse

حالات استخدام الفئات المفتوحة

تفيد الفئات المفتوحة في سيناريوهات متعددة:

  • توسيع الفئات المضمّنة بأساليب إضافية.
  • تحسين مكتبات الجهات الخارجية.
  • تحسين سهولة القراءة وقابلية الصيانة.

مخاطر Monkey Patching

قد يكون Monkey Patching خطيرًا إذا لم يُستخدم بحذر.

  • سلوك غير متوقع عند تعديل الفئات الأساسية.
  • تعارضات محتملة مع مكتبات الجهات الخارجية.
  • صعوبة أكبر في تصحيح الأخطاء والصيانة.

بدائل Monkey Patching

بدلًا من تعديل السلوك العام، فكّر في استخدام refinements.

تتيح refinements تعديل الأصناف ضمن نطاق محدود.

module StringExtensions
  refine String do
    def shout
      upcase + '!!!'
    end
  end
end

using StringExtensions
puts 'hello'.shout

مراجعة Open Classes

تهانينا!

لقد تعلمت كيفية تعديل الأصناف الموجودة باستخدام Open Classes وMonkey Patching.

بعد ذلك، ستستكشف كيفية استخدام send وeval لتنفيذ الأساليب ديناميكيًا.

الفئات المفتوحة والترقيع بالقرد — رسم توضيحي 10
البدء مجانًا

تعلم Ruby مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
29
الدروس
109

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

هل درس «الفئات المفتوحة والترقيع بالقرد» مجاني؟

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

ماذا ستتعلم في «الفئات المفتوحة والترقيع بالقرد»؟

استكشفوا كيفية سماح Ruby بتعديل الفئات الموجودة وإضافة وظائف جديدة تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «الفئات المفتوحة والترقيع بالقرد»؟

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

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

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

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

  1. ما هي البرمجة الوصفية؟
  2. التعريف الديناميكي للدوال
  3. الفئات المفتوحة والترقيع بالقرد
  4. استخدام send وeval
← العودة إلى Ruby Academy