Sobes.tech
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