Sobes.tech
Назад к вопросам
Middle
4

Расскажи про принципы SOLID

Компании, где спрашивали
Saber Interactive

Ответ от нейросети

sobes.tech AI

SOLID — это пять принципов объектно-ориентированного программирования, которые помогают создавать гибкий, расширяемый и поддерживаемый код:

  • S (Single Responsibility Principle) — Принцип единственной ответственности: класс должен иметь только одну причину для изменения, то есть выполнять одну задачу.
  • O (Open/Closed Principle) — Принцип открытости/закрытости: программные сущности должны быть открыты для расширения, но закрыты для модификации.
  • L (Liskov Substitution Principle) — Принцип подстановки Барбары Лисков: объекты подклассов должны быть взаимозаменяемы с объектами базового класса без нарушения корректности работы.
  • I (Interface Segregation Principle) — Принцип разделения интерфейса: лучше иметь несколько специализированных интерфейсов, чем один универсальный.
  • D (Dependency Inversion Principle) — Принцип инверсии зависимостей: модули верхнего уровня не должны зависеть от модулей нижнего уровня; оба должны зависеть от абстракций.

Пример на Python:

class Logger:
    def log(self, message):
        print(message)

class UserService:
    def __init__(self, logger):
        self.logger = logger  # зависимость через абстракцию

    def create_user(self, username):
        # логика создания пользователя
        self.logger.log(f"User {username} created")

Здесь UserService зависит от абстракции Logger, что соответствует принципу D.