الدرس 3: LSP والعقود السلوكية
استبدلت تنفيذاً بآخر — وانهار النظام، رغم أن المُترجِم كان راضياً تماماً. على سبيل المثال: PreviewExporter يبدو كأنه Exporter من كل الجوانب، لكنه يطلق استثناءً تحديداً على القوائم الكبيرة التي يستخدمها الإنتاج. يعلّمك هذا الدرس مبدأ ليسكوف للاستبدال (LSP): العقد السلوكي الذي يجب أن يحافظ عليه النوع
LSP يشبه البطاريات الاحتياطية: كل بطارية AA يجب أن تعمل في كل جهاز مصمم لبطاريات AA. البطارية التي تدخل الفتحة لكنها تحرق جهاز التحكم عن بُعد قد أخلّت بالوعد.
- مبدأ ليسكوف للاستبدال (LSP)
- يجب أن يعمل كل نوع فرعي في أي مكان يُتوقع فيه نوعه الأساسي — دون مفاجآت للمستدعي.
- العقد السلوكي
- وعود الدالة التي تتجاوز توقيعها: أي المدخلات صالحة، وما يضمنه المخرج، وأي الأخطاء قد تحدث.