La mia comprensione dell'applicazione di MVC / MV * sta seguendo il principio di Separation of Concerns (SoC) - separando programmi / codici in sezioni / pezzi distinti in modo che ogni sezione possa affrontare un problema separato (Rif: link )
ci sono molti vantaggi quando si separano i dubbi: uno non influirà su un altro e gli sviluppatori potrebbero lavorare su un'unità senza influenzare il resto, ecc. & etc ... MVC non è l'unico modello che segue SoC, in pratica, lo stesso OOP è un grande concetto per rompere le cose in unità.
MVC / MV * sono molto utili quando si gestisce lo sviluppo correlato all'interfaccia utente, mentre al di sotto ci potrebbero essere più schemi - fabbrica, singleton, facciata e così via. La maggior parte dei grandi progetti consiste di più livelli che gestiscono aspetti diversi, ma l'interfaccia utente potrebbe non essere un must per alcuni casi. Potresti vedere molto MVC, perché molti progetti hanno elementi dell'interfaccia utente.
Quindi, mentre parli degli svantaggi di MVC, dipende davvero dai progetti che stai facendo - ha un'interfaccia utente? richiede grande scalabilità / estensibilità? ha molte interazioni tra l'interfaccia utente e il sistema dietro? 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ù generale - un modello di progettazione), dargli un contesto e pensare a complessità, scalabilità, testabilità, manutenzione, vincoli temporali, ecc. & ecc.