Встречается на собеседованиях • сегодня
Что означает буква L в SOLID
L в SOLID означает Liskov Substitution Principle (Принцип подстановки Барбары Лисков).
Суть: объекты родительского класса должны быть заменяемы объектами дочерних классов без нарушения работы программы.
Пример нарушения:
typescript
class Rectangle {
constructor(public width: number, public height: number) {}
setWidth(width: number) {
this.width = width;
}
setHeight(height: number) {
this.height = height;
}
}
class Square extends Rectangle {
setWidth(width: number) {
this.width = width;
this.height = width; // Нарушение LSP, так как Square меняет поведение
}
}
function testRectangle(rect: Rectangle) {
rect.setWidth(10);
rect.setHeight(5);
console.log(rect.width * rect.height); // Ожидается 50, но для Square будет 25
}
text
Решение — не наследовать `Square` от `Rectangle`, а использовать общий интерфейс.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы