Принцип единой ответственности и разделение интересов - это одно и то же.
Конечно, вы можете увязнуть в академической дискуссии, пытаясь выявить какую-то разницу между ними, но почему? Для всех намерений и целей они описывают одно и то же. Самая большая проблема - люди настолько захвачены желанием точно знать, что такое «беспокойство» и «ответственность», что, возможно, они упускают важную идею, лежащую в основе SRP и SoC.
Эта идея состоит в том, чтобы просто разбить вашу кодовую базу на слабо связанные изолированные части. Это позволяет нескольким разработчикам работать над разными частями, не влияя друг на друга, а также позволяет одному разработчику изменять одну изолированную часть, не нарушая другую.
Это применяется на уровне модуля, например, MVC - это архитектурный паттерн, поддерживающий SRP и SoC. Кодовая база разбита на изолированные модели, представления и контроллеры. Таким образом, изменение представления может быть выполнено независимо от модели. Два два ужасно не переплетаются.
На более низком уровне это должно применяться и к классам. Вместо того, чтобы помещать десятки методов в один класс, разбейте код на несколько. По тем же причинам.
Также даже на уровне методов разбивайте большие методы на более мелкие.
В принципе. SRP - это принцип, а не правило, поэтому вы не должны (читай: не можете / не должны) строго придерживаться его. Это не означает, что нужно заходить слишком далеко и иметь в каждом классе только один метод из семи строк Это просто означает общий принцип разделения кода на отдельные части. Дело в том, что это приведет к лучшей базе кода и более стабильному программному обеспечению.