Skip to content

Latest commit

 

History

History
63 lines (41 loc) · 5.3 KB

README.md

File metadata and controls

63 lines (41 loc) · 5.3 KB

SOLID


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

Принципы разработаны Робертом Мартином (американским инженером, программистом и автором книги «Чистый код») в начале 2000-х годов.

Расшифровка аббревиатуры:

  • S (Single Responsibility Principle) — принцип единственной ответственности;
  • O (Open/Closed Principle) — принцип открытости/закрытости;
  • L (Liskov Substitution Principle) — принцип подстановки Барбары Лисков;
  • I (Interface Segregation Principle) — принцип разделения интерфейса;
  • D (Dependency Inversion Principle) — принцип инверсии зависимостей.

Принципы SOLID

  1. Принцип единственной ответственности (Single Responsibility Principle — SRP). Каждый класс должен иметь только одну причину для изменения. Это означает, что класс должен быть ответственным только за одну конкретную функцию или задачу.

  2. Принцип открытости/закрытости (Open/Closed Principle — OCP). Программные сущности, такие как классы, модули и функции, должны быть открыты для расширения, но закрыты для модификации. Вместо изменения существующего кода, следует добавлять новый код для внесения изменений.

  3. Принцип подстановки Лисков (Liskov Substitution Principle — LSP). Объекты в программе должны быть заменяемыми экземплярами их базовых типов, не нарушая корректность программы. Это означает, что код, который работает с базовым типом, должен работать и с любым его подтипом, не вызывая ошибок или неожиданного поведения.

  4. Принцип разделения интерфейса (Interface Segregation Principle — ISP). Клиенты не должны зависеть от интерфейсов, которые они не используют. Вместо создания общих интерфейсов следует создавать специфические интерфейсы, предназначенные для конкретных клиентов. Это позволяет избежать излишней связности между компонентами системы и улучшить модульность. Это значит, что нужно создавать только небольшие и узконаправленные интерфейсы, не перегруженные ненужными методами.

  5. Принцип инверсии зависимостей (Dependency Inversion Principle — DIP). Зависимости внутри системы должны строиться на основе абстракций, а не деталей. Это означает, что высокоуровневые модули не должны зависеть от низкоуровневых модулей, и они все должны зависеть от абстракций. Классы должны зависеть от абстракций, а не от конкретных реализаций. Высокоуровневые модули не должны зависеть от низкоуровневых модулей. Этот принцип помогает уменьшить связанность между компонентами системы и повысить их переиспользуемость.

Цель использования принципов SOLID — упростить разработку, сделать её более гибкой и устойчивой к ошибкам. Следование принципам SOLID позволяет строить масштабируемые и сопровождаемые программные продукты с понятной бизнес-логикой. Код, который написан с соблюдением принципов SOLID, проще понимать, поддерживать, расширять или изменять его функциональность.


Материал