MVC è un modello architettonico che si concentra sulla separazione delle preoccupazioni. Ciò significa che ogni componente della tua applicazione dovrebbe svolgere solo un compito e farlo bene. È questa preoccupazione che aiuta a identificare i componenti come modelli, viste e controllori.
Di solito, una risorsa (in genere un record in un DB) è rappresentata come un modello. Di ', hai una tabella per gli utenti in un sito web. Un modello corrispondente chiamato qualcosa come UserModel
esporrà tutte le API pertinenti per creare, recuperare, aggiornare ed eliminare un utente dal DB.
Il controller sarà in genere il gateway per la tua applicazione. La logica della delega risiederà qui. Ad esempio, se fosse necessario modificare gli utenti in modo massivo, una richiesta a un controller (forse denominato come) BulkUserController
esporrà un'API per modificare più utenti. A sua volta, questo controllore delegherebbe l'attività di modifica per ogni utente in richiesta a UserModel
. Si noti che il controller gestisce solo la delega qui.
Ora, tornando alla domanda sull'interfacciamento con il DB. Poiché i modelli rappresentano la risorsa, sono quelli che interagiscono con il DB. Ciò significa che controller come BulkUserController
e SingleUserController
(per mancanza di immaginazione) interagirebbero con UserModel
che a sua volta interagisce con l'istanza sottostante dell'interfaccia DB. In genere l'istanza dell'interfaccia DB gestiva un pool di connessioni al DB per l'esecuzione di interrogazioni parallele sul DB.