Sobes.tech
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, лучше разделить классы на летающих и нелетающих птиц, например, через интерфейсы или отдельные базовые классы.