Код IT
← Каталог

Принципы SOLID в объектно-ориентированном проектировании — Классический пример нарушения

Фрагмент из «Принципы SOLID в объектно-ориентированном проектировании»: Классический пример нарушения.

Python main.py
# 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