La mia comprensione dell'applicazione di MVC / MV * sta seguendo il principio di Separation of Concerns (SoC) - che separa programma / codici in sezioni / pezzi distinti in modo che ogni sezione possa affrontare un problema separato (Rif .: http://en.wikipedia.org / wiki / Separation_of_concerns )
ci sono molti vantaggi nel separare le preoccupazioni: uno non influirà su un altro e gli sviluppatori potrebbero lavorare su un'unità senza influire sul resto, ecc. ecc. ... MVC non è l'unico modello che segue il SoC, fondamentalmente, lo stesso OOP è un ottimo concetto per spezzare le cose in unità.
MVC / MV * sono molto utili quando si gestisce lo sviluppo relativo all'interfaccia utente, mentre al di sotto potrebbero esserci più modelli: fabbrica, singleton, facciata ecc. La maggior parte dei grandi progetti è costituita da più livelli che gestiscono aspetti diversi, ma l'interfaccia utente potrebbe non essere un must alcuni casi. Potresti vedere MVC molto, perché molti progetti hanno elementi dell'interfaccia utente.
quindi, mentre parliamo degli svantaggi di MVC, dipende davvero dai progetti che stai realizzando - ha un'interfaccia utente? richiede grande scalabilità / estensibilità? ha molte interazioni tra UI e behind-system? ad esempio, una semplice pagina Web di informazioni non richiede affatto MVC, a meno che non si preveda di estenderla a una grande pagina interattiva in futuro.
quindi per valutare MVC (o più in generale - un modello di progettazione), dargli un contesto e pensare a complessità, scalabilità, testabilità, manutenzione, vincoli di tempo, ecc. ecc.