Википедия описывает принцип единой ответственности следующим образом:
Принцип единой ответственности гласит, что каждый объект должен иметь единственную ответственность, и эта ответственность должна быть полностью инкапсулирована классом. Все его услуги должны строго соответствовать этой ответственности.
Традиционное использование контроллера в MVC, похоже, приводит программиста к нарушению этого принципа. Возьмите простой контроллер гостевой книги и просмотрите. Контроллер может иметь два метода / действия: 1) Index () и 2) Submit (). Индекс () отображает форму. Submit () обрабатывает его. Представляют ли эти два метода две разные обязанности? Если да, то как здесь задействована единственная ответственность?