Урок 3: LSP и поведенческие контракты
Вы заменили одну реализацию другой — и система рухнула, хотя компилятор был полностью доволен. Например: PreviewExporter, который во всём выглядит как Exporter, но выбрасывает исключение именно на больших списках, которые использует продакшен. Этот урок обучает принципу подстановки Барбары Лисков (L
LSP — это как запасные батарейки: каждая батарейка AA должна работать в каждом устройстве, рассчитанном на AA. Батарейка, которая подходит по размеру, но сжигает пульт, нарушила обещание.
- Принцип подстановки Барбары Лисков (LSP)
- Каждый подтип должен работать везде, где ожидается его базовый тип — без сюрпризов для вызывающего.
- поведенческий контракт
- Обещания метода помимо его сигнатуры: какие входы допустимы, что гарантирует выход и какие ошибки могут возникнуть.