انتقل إلى المحتوى
أمين أبوزيد
قيد المراجعةJNR-004-L02

المفتوح/المغلق (Open/Closed)

  • الدرس 2 من 7
  • 11 دقيقة قراءة
  • Junior
في هذا الدرس 4 موضوعات

محتوى هذا الدرس مكتوب وينتظر المراجعة. يعرض المخطط أدناه ما سيغطيه، وسيُنشر بعد اعتماده.

نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.

في هذا الدرس

add behavior without editing working code.

الموضوعات المخطط لها

  • O: open for extension, closed for modification.
  • Smell: an if/else or switch on type that grows with every new feature.
  • Fix: an interface with a new class per case.
  • Then a new case means a new class, and old classes stay untouched.
  • With a sealed type, the compiler lists what to update; both styles can be fine.
تفاصيل المخطط المبدئي

عرض عملي

java
interface TaxRule { Money tax(Money net); }
class VatRule implements TaxRule { ... }
// adding a new rule = adding a class

اختبر فهمك

What does "closed for modification" mean?

أظهر الإجابة

Adding a feature does not require editing existing, tested code.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

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

اكتب للبحث في المستويات والمراحل والوحدات والدروس.