Введение
Чтобы вникнуть в этот и другие принципы, нам понадобится ввести несколько понятий, которые будем использовать.
Модулем мы будем называть какую-то часть кода, обособленную от других. Это может быть класс, функция, объект, файл — в общем, что-то, у чего есть границы, отделяющие этот код от другого.
Бизнес-правилами будем называть правила взаимодействия сущностей друг с другом и внешней средой. Под внешней средой будем понимать всё, что влияет на программу извне — пользовательский ввод, события, вызов API и т. д.
Причиной изменения будем называть обновление бизнес-правил, которое вынуждает менять код какого-либо модуля.
Принцип единственной ответственности
Принцип единственной ответственности (Single Responsibility Principle, SRP) означает, что у модуля должна быть только одна причина для изменения. Весь код, который меняется по этой причине, должен быть собран в этом модуле.
Проще говоря принцип предлагает нам проводить границы между модулями так, чтобы изменение в бизнес-правилах затрагивало как можно меньше модулей, в идеале — один.
Основной инструмент принципа — объединять те части, которые меняются по одной причине, и разделять те, которые меняются по разным.
Принцип позволяет уменьшить количество кода, который нужно менять при изменении бизнес-правил. Он помогает ограничить влияние этих изменений и контролировать сложность программы.
Коротко
Принцип единственной ответственности:
- помогает разбивать и декомпозировать задачи по одной на модуль;
- уменьшает количество модулей, которые надо изменить при изменении требований;
- ограничивает влияние изменений, помогая контролировать сложность системы.