← Каталог
Принципы SOLID в объектно-ориентированном проектировании — Классический пример нарушения
Фрагмент из «Принципы SOLID в объектно-ориентированном проектировании»: Классический пример нарушения.
# Python (плохой пример)
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def set_width(self, width):
self.width = width
def set_height(self, height):
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 = width
self.height = width # Поддерживаем свойство квадрата
def set_height(self, height):
self.width = height
self.height = height # Python (плохой пример)
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def set_width(self, width):
self.width = width
def set_height(self, height):
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 = width
self.height = width # Поддерживаем свойство квадрата
def set_height(self, height):
self.width = height
self.height = height