Struchkov Mark
1536a6c68c
All checks were successful
continuous-integration/drone/push Build is passing
2.1 KiB
2.1 KiB
aliases | tags | date | zero-link | parents | linked | |||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
2024-09-27 |
|
|
Объекты подкласса должны быть взаимозаменяемы с объектами базового класса без нарушения поведения программы. Это значит, что подклассы не должны изменять базовую логику родительских классов или нарушать их контракт.
- Пример нарушения LSP: Подкласс переопределяет методы родительского класса, изменяя их поведение, что приводит к непредсказуемым результатам при работе с кодом через базовый класс.
- Решение: Подклассы должны следовать контракту базового класса, не нарушая его поведение.
public class Bird {
public void fly() {
// Птица летает
}
}
public class Penguin extends Bird {
@Override
public void fly() {
// Пингвин не может летать — нарушение LSP
}
}
Вместо этого можно выделить разные классы для летающих и нелетающих птиц, чтобы избежать нарушения принципа подстановки.
Мета информация
Область:: ../../meta/zero/00 Архитектура ПО Родитель:: SOLID Источник:: Создана:: 2024-09-27 Автор::