Встречается на собеседованиях • сегодня

Что значит буква L в SOLID

Буква L в SOLID означает Liskov Substitution Principle (LSP) — принцип подстановки Барбары Лисков.

Суть:
Подтипы должны быть заменяемыми своими базовыми типами без нарушения работы программы. Если класс B наследуется от A, то объекты A можно заменить объектами B без изменения корректности кода.

Пример нарушения LSP:

python
class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height
    
    def area(self):
        return self.width * self.height

class Square(Rectangle):
    def __init__(self, side):
        super().__init__(side, side)
    
    # Нарушение LSP: изменение поведения родителя
    def set_width(self, width):
        self.width = self.height = width

Здесь Square нарушает LSP, так как изменение ширины влияет на высоту, что неожиданно для кода, рассчитанного на Rectangle.

Как исправить:
Не наследовать Square от Rectangle, а использовать общий интерфейс (например, Shape с методом area()).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы