Junior — Middle
102
Liskov Yerine Koyma Prensibi'nin programlamada nasıl uygulandığına bir örnek verebilir misiniz?
AI'dan gelen yanıt
sobes.tech yapay zeka
Принцип подстановки Лисков (Liskov Substitution Principle, LSP) говорит, что объекты подкласса должны быть взаимозаменяемы с объектами базового класса без нарушения корректности работы программы.
Пример на JavaScript (Node.js):
class Bird {
fly() {
console.log('Птица летит');
}
}
class Sparrow extends Bird {
fly() {
console.log('Воробей летит');
}
}
class Ostrich extends Bird {
fly() {
throw new Error('Страус не умеет летать');
}
}
function makeBirdFly(bird) {
bird.fly();
}
const sparrow = new Sparrow();
makeBirdFly(sparrow); // Воробей летит
const ostrich = new Ostrich();
makeBirdFly(ostrich); // Ошибка — нарушается LSP
Здесь класс Ostrich нарушает принцип подстановки Лисков, так как подкласс не поддерживает поведение базового класса (метод fly). Чтобы соблюдать LSP, лучше разделить классы на летающих и нелетающих птиц, например, через интерфейсы или отдельные базовые классы.