SOLID
SOLID — набор принципов проектирования объектно-ориентированных систем.
Помогает создавать гибкую, поддерживаемую и масштабируемую архитектуру.
Нужны для улучшения структуры и качества кода.
SOLID и ООП: в чём разница?
- ООП — методология или стиль программирования (с основными свойствами: инкапсуляция, наследование и полиморфизм)
- SOLID — набор рекомендаций, как правильно использовать принципы ООП, чтобы создать код, который будет легче поддерживать и расширять
ООП даёт инструменты, а SOLID помогает применять их эффективно.
Принципы SOLID
1. Single Responsibility Principle (Принцип единственной ответственности)
Каждый класс должен решать одну задачу. Делай модули меньше.
Пример: класс "Order" отвечает только за управление заказом, а уведомления отправляются другим классом.
Связь с ООП: связан с инкапсуляцией — каждый объект скрывает детали своей реализации и выполняет только одну функцию.
2. Open/Closed Principle (Принцип открытости/закрытости)
Класс должен быть открыт для расширений, но закрыт для изменений. Делай модули расширяемыми.
Пример: чтобы добавить новый тип отчёта, создаём новый класс, не изменяя существующий код.
Связь с ООП: использует наследование — создание новых классов на основе существующих; и полиморфизм — способность объектов разных типов использовать общий интерфейс для выполнения различных действий.
3. Liskov Substitution Principle (Принцип подстановки Барбары Лисков)
Подклассы должны заменять родительские классы без ошибок. Наследуйся правильно.
Пример: если класс "Bird" имеет метод "fly", класс "Penguin" не должен его наследовать, так как пингвины не летают.
Связь с ООП: связан с принципом наследования. Подклассы должны правильно реализовывать поведение родительских классов, не нарушать полиморфизм.