Wikipedia descrive l'Single Responsibility Principle in questo modo:L'uso tradizionale del controller in MVC porta a una violazione del Principio di Responsabilità Unica?
La Responsabilità unico principio stabilisce che ogni oggetto deve avere un unico responsabile, e che la responsabilità debba essere interamente incapsulati dalla classe. Tutti i suoi servizi dovrebbero essere strettamente allineati a tale responsabilità.
L'uso tradizionale del controller in MVC sembra condurre un programmatore verso una violazione di questo principio. Prendi un semplice controllore del libro degli ospiti e guarda. Il controller potrebbe avere due metodi/azioni: 1) Indice() e 2) Invia(). L'indice() visualizza il modulo. Submit() lo elabora. Questi due metodi rappresentano due distinte responsabilità? In tal caso, come entra in gioco la Responsabilità Unica?
Sono d'accordo, non da solo viola il pattern MVC, ma incoraggia a - dove hai intenzione di mettere quella nuova azione relativa all'Utente? Perché, nel UserController, ovviamente. Ben presto diventa fuori controllo, pieno di metodi d'azione che non dipendono l'uno dall'altro, ma sono raggruppati semplicemente perché è conveniente. Ho iniziato una discussione [qui] (https://gist.github.com/mindplay-dk/5505023) per discutere l'idea di eliminare i controller e di raggruppare le azioni in spazi dei nomi. –