Урок 20: Итоговый проект II — расширение через наследование
Отель имеет успех — и появляется новое требование: собак нужно выгуливать, кошкам нужны лотки. Вместо того чтобы переписывать систему, мы расширяем её: Dog и Cat наследуются от Pet, и весь отель продолжает работать, не меняя ни строчки. Это и есть настоящий профессиональный навык — безопасно изменят
Отелю незачем знать, кто собака, а кто кошка — он спрашивает каждого постояльца: «Какие у тебя инструкции?» — и каждый отвечает по-своему. Одна стойка регистрации, постояльцы всех видов.
- расширение модели
- Добавление возможностей в существующую систему через новые дочерние классы — без изменения кода, который уже работает.
- открыт для расширения, закрыт для изменения
- Принцип проектирования: хороший код растёт за счёт добавления новых классов, а не за счёт правки существующих.