Model-View-ViewModel (MVVM)

Model-View-ViewModel (MVVM) is een software-ontwerppatroon dat is gestructureerd om programmalogica en user interface controls te scheiden. MVVM is ook bekend als model-view-binder en is bedacht door Microsoft architecten Ken Cooper en John Gossman.

Net als veel andere ontwerppatronen helpt MVVM bij het organiseren van code en het opdelen van programma's in modules om ontwikkeling, bijwerken en hergebruik van code eenvoudiger en sneller te maken. Het patroon wordt vaak gebruikt in Windows en grafische presentatiesoftware voor het web.

Het MVVM-patroon wordt gebruikt in Windows Presentation Foundation (WPF), dat draait op Microsofts .NET. Silverlight, een Microsoft WPF internet-equivalent multimedia plug-in, maakt ook gebruik van MVVM.

De scheiding van de code in MVVM is verdeeld in View, ViewModel en Model:

  • View is de verzameling van zichtbare elementen, die ook gebruikersinvoer ontvangt. Dit omvat user interfaces (UI), animaties en tekst. Er is geen directe interactie met de inhoud van View om te veranderen wat wordt gepresenteerd.
  • ViewModel bevindt zich tussen de View en Model lagen. Dit is waar de controls voor interactie met View zijn gehuisvest, terwijl binding wordt gebruikt om de UI elementen in View te verbinden met de controls in ViewModel.
  • Model bevat de logica voor het programma, die wordt opgehaald door het ViewModel na ontvangst van de invoer van de gebruiker via View.

MVVM