I do not have a single Controller in my application that has to deal with all possible actions on all possible Models and Views.
I do not have a single View which has to deal with all different types of output - HTML, PDF, or CSV.
I do not have a single Model which has to deal with all the tables in the database.
What I DO have is an architecture where each user transaction, and I have over 2,500, uses a Model (sometimes more than one) a View and a Controller, where each is chosen from a list of possibilities at run time.
- I have 40 Controllers, one for each Transaction Pattern
- I have 3 Views, one for HTML output, one for PDF output, and another for CSV output.
- I have 300+ Models, one for each table in the database.
- I have 4 Data Access Objects, one for MySQL, one for PostgreSQL one for Oracle, and another for SQL Server.
Each of these components is responsible for (or concerned with) a separate piece of logic in the application so as far as I am concerned this is an acceptable interpretation and implementation of SRP.