المفتوح/المغلق (Open/Closed)
في هذا الدرس 4 موضوعات
محتوى هذا الدرس مكتوب وينتظر المراجعة. يعرض المخطط أدناه ما سيغطيه، وسيُنشر بعد اعتماده.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
add behavior without editing working code.
الموضوعات المخطط لها
- O: open for extension, closed for modification.
- Smell: an
if/elseorswitchon 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.
تفاصيل المخطط المبدئي
عرض عملي
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.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.