Dev Blog

Принцип единственной ответственности (Single Responsibility Principle; SRP)

Определения1:

Модуль должен иметь одну и только одну причину для изменения.

или

Модуль должен отвечать за одного и только за одного актора.

Актор - группа, состоящая из одного или нескольких лиц, желающих данного изменения

Связность - это сила, которая связывает код, ответственный за единственного актора.

Модуль - это связный набор функций и структур данных.

Такое определение модуля уже говорит, что это код решающий задачи для одной группы лиц, если это не так, то это не модуль. Если в какой то модуль добавится код относящийся к другому актору, то этот модуль уже перестает быть модулем и его надо делить на два модуля.

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

 

Примечания

1. Мартин Р. Чистая архитектура. Искусство разработки программного обеспечения. — СПб.: Питер, 2018.