Найти тему
DEBAGanov

Java 1278. Что такое Liskov’s Substitution Principle (Принцип подстановки Барбары Лисков)?

1278. Что такое Liskov’s Substitution Principle (Принцип подстановки Барбары Лисков)?

Принцип подстановки Барбары Лисков (Liskov's Substitution Principle, LSP) - это принцип SOLID-архитектуры, который гласит, что объекты в программе должны быть заменяемыми их наследниками без изменения корректности программы.

Пример на Java:

class Bird {
public void fly() {
// выполнение полета }
}

class Duck extends Bird {
public void swim() {
// выполнение плавания }
}

class Ostrich extends Bird {
public void run() {
// выполнение бега }
}

public class Main {
public static void main(String[] args) {
Bird duck = new Duck();
duck.fly(); // вызывает метод лета у объекта Duck Bird ostrich = new Ostrich();
ostrich.fly(); // ошибка компиляции, т.к. страус не умеет летать }
}

Здесь подклассы Bird - это наследники класса Bird, который содержит метод fly(). Однако, Ostrich не умеет летать, так что вызов метода fly() приводит к ошибке. Таким образом, Ostrich не является заменяемым на Bird без нарушения принципа LSP.

Пример, который следует принципу LSP:

class Bird {
public void move() {
// выполнение движения }
}

class Duck extends Bird {
public void move() {
// выполнение полета или плавания }
}

class Ostrich extends Bird {
public void move() {
// выполнение бега }
}

public class Main {
public static void main(String[] args) {
Bird duck = new Duck();
duck.move(); // вызывает метод move() у объекта Duck, это может быть полет или плавание
Bird ostrich = new Ostrich();
ostrich.move(); // вызывает метод move() у объекта Ostrich, это бег }
}

1606 вопрос-ответ по Java

Курс Spring Framework

Tелеграмм каналDEBAGanov

Мое резюмеDEBAGanov