Принцип единой ответственности является первым из 5 принципов проектирования SOLID. Он также известен как принцип «разделения интересов».

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

Возьмем пример.

Функция getUsers не соответствует принципу единой ответственности, поскольку она обрабатывает две обязанности.

1: Извлечение пользователей из API.

2: Сохранение выбранных пользователей в sessionStorage.

Если нам когда-нибудь понадобится изменить логику получения пользователей или вместо этого мы решим сохранить пользователей в localStorage, нам нужно изменить код внутри функции getUsers. Не круто, правда?

Теперь давайте посмотрим, как реализовать тот же пример, не забывая о принципе единой ответственности.

Вот как можно разделить проблемы.

Функция saveData теперь может сохранять данные как угодно, а функция getUsers может просто выполнять выборку пользователей.