digital-garden/dev/architecture/Liskov Substitution Principle.md
Struchkov Mark 1536a6c68c
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-09-27 20:25:32 +03:00

2.1 KiB
Raw Blame History

aliases tags date zero-link parents linked
LSP
Принцип подстановки Барбары Лисков
maturity/🌱
2024-09-27
../garden/ru/meta/zero/00 Архитектура ПО
SOLID

Объекты подкласса должны быть взаимозаменяемы с объектами базового класса без нарушения поведения программы. Это значит, что подклассы не должны изменять базовую логику родительских классов или нарушать их контракт.

  • Пример нарушения LSP: Подкласс переопределяет методы родительского класса, изменяя их поведение, что приводит к непредсказуемым результатам при работе с кодом через базовый класс.
  • Решение: Подклассы должны следовать контракту базового класса, не нарушая его поведение.
public class Bird {
    public void fly() {
        // Птица летает
    }
}

public class Penguin extends Bird {
    @Override
    public void fly() {
        // Пингвин не может летать — нарушение LSP
    }
}

Вместо этого можно выделить разные классы для летающих и нелетающих птиц, чтобы избежать нарушения принципа подстановки.


Мета информация

Область:: ../../meta/zero/00 Архитектура ПО Родитель:: SOLID Источник:: Создана:: 2024-09-27 Автор::

Дополнительные материалы

Дочерние заметки