Что такое принцип Барбаре Лисков (Liskov Substitution Principle)

Python Middle Без компании
Что такое принцип Барбаре Лисков (Liskov Substitution Principle)
Ответы
Принцип Барбара Лисков (LSP) гласит, что объекты родительского класса должны быть заменяемы объектами дочерних классов без нарушения работы программы. Это означает, что подклассы должны расширять, а не изменять поведение базового класса. Пример нарушения LSP: ``` 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) def set_width(self, width): self.width = self.height = width def set_height(self, height): self.width = self.height = height ``` Здесь Square изменяет поведение Rectangle (изменяет оба измерения при изменении одного), что может вызвать проблемы, если код ожидает независимого изменения ширины и высоты. Правильнее было бы не наследовать Square от Rectangle.