Junior — Middle
110
Можете ли да објасните значење слова L у принципима SOLID?
Одговор од АИ
sobes.tech АИ
Буква L в принципах SOLID обозначает Liskov Substitution Principle (Принцип подстановки Барбары Лисков). Этот принцип гласит, что объекты подкласса должны быть взаимозаменяемы с объектами базового класса без нарушения корректности работы программы.
Проще говоря, если класс B наследуется от класса A, то везде, где ожидается объект класса A, можно использовать объект класса B, и программа будет работать правильно.
Это важно для поддерживаемости и расширяемости кода, чтобы не ломать логику при добавлении новых подклассов.
Пример на Java:
class Bird {
void fly() {
System.out.println("Птица летит");
}
}
class Sparrow extends Bird {
@Override
void fly() {
System.out.println("Воробей летит");
}
}
class Ostrich extends Bird {
@Override
void fly() {
throw new UnsupportedOperationException("Страус не умеет летать");
}
}
Здесь Ostrich нарушает принцип Liskov, так как не может заменить Bird без изменения поведения (метод fly бросает исключение). Чтобы соблюсти принцип, стоит пересмотреть иерархию классов.