У SRP есть еще одно трактование. Оно говорит, что его следует понимать как единственную причину для изменения, а не как единственную обязанность. Это значит, что если класс используется в двух сценариях в приложении, то изменение этого класса повлияет на эти два сценария. И нужно делать так, чтобы эти изменения не были критичными для второго сценария. Например, если в одном случае мы снимаем деньги с аккаунта, и ожидаем получить эксепшн, если баланс станет меньше ноля, то в другом случае мы ожидаем получить минусовой баланс. И если мы поменяем поведение с эксепшена на минусовой (потому что нам нужно чтобы в каком-то случае баланс был именно минусовым), то это затронет поведение в другом сценарии и таким образом мы нарушим SRP.