Принцип единой ответственности является первым из 5 принципов проектирования SOLID. Он также известен как принцип «разделения интересов».
У функции должно быть только одно задание, и единственная причина, по которой вы меняете код внутри функции, должна состоять в том, чтобы напрямую обращаться к этому одному заданию.
Возьмем пример.
Функция getUsers не соответствует принципу единой ответственности, поскольку она обрабатывает две обязанности.
1: Извлечение пользователей из API.
2: Сохранение выбранных пользователей в sessionStorage.
Если нам когда-нибудь понадобится изменить логику получения пользователей или вместо этого мы решим сохранить пользователей в localStorage, нам нужно изменить код внутри функции getUsers. Не круто, правда?
Теперь давайте посмотрим, как реализовать тот же пример, не забывая о принципе единой ответственности.
Вот как можно разделить проблемы.
Функция saveData теперь может сохранять данные как угодно, а функция getUsers может просто выполнять выборку пользователей.