Чем Liskov Substitution Principle отличается от наследование и когда что выбрать?
Что хотят услышать интервьюеры:
Сравнение: Liskov Substitution Principle стоит сравнивать с наследование по критериям читаемости, безопасности, производительности, тестируемости и поддержки командой.
Ответ:
Когда выбирать Liskov Substitution Principle: когда его свойства прямо соответствуют задаче: подтип должен корректно заменять базовый тип без нарушения ожиданий клиента.
Слабый ответ: “так принято в Spring/Java”. На собеседовании лучше объяснить ограничения и цену выбора.
List<Number> numbers = new ArrayList<>();