Middle
Cos'è il pattern architetturale MVVM?
sobes.tech AI
Risposta dell'AI
MVVM (Model-View-ViewModel) è un pattern architetturale che separa l'interfaccia utente (View) dalla logica di business (Model) tramite uno strato intermedio — ViewModel.
| Componente | Descrizione | Scopo |
|---|---|---|
| Model | Rappresenta dati e regole di business. | Fornisce dati, indipendente da View e ViewModel. |
| View | Mostra l'interfaccia utente. | È responsabile della visualizzazione e dell'interazione con l'utente. |
| ViewModel | Contiene la logica di presentazione, trasmette i dati dal Model alla View. | Collega View e Model, contiene comandi e proprietà per la View. |
In MVVM, la connessione tra View e ViewModel avviene tramite meccanismi di binding dei dati (data binding). La View "si iscrive" ai cambiamenti delle proprietà nel ViewModel, e il ViewModel notifica alla View tali cambiamenti. L'interazione dell'utente con la View (ad esempio, cliccando un pulsante) innesca la chiamata di un comando nel ViewModel.
Vantaggi:
- Separazione delle responsabilità: chiara divisione tra UI, logica di business e logica di presentazione.
- Testabilità: il ViewModel è facilmente testabile indipendentemente dalla View.
- Manutenibilità migliorata: le modifiche in una parte del sistema influenzano meno le altre.
- Sviluppo: sviluppatori frontend e backend possono lavorare in parallelo.
Esempio di concetto di binding dei dati (pseudo-codice):
// ViewModel
class CounterViewModel {
count = 0; // proprietà osservabile
increment() {
this.count++; // attiva notifica di cambiamento
}
}
// View (rappresentazione semplificata)
<button onclick="viewModel.increment()">+</button>
<span data-bind="textContent: viewModel.count"></span> // Associa il contenuto dello span a viewModel.count