Model-View-ViewModel oder MVVM ist ein Software-Entwurfsmuster, mit dem Steuerelemente der Benutzeroberfläche und Programmlogik in Windows und Webgrafik-Präsentationssoftware getrennt werden sollen. Es wird auch als Model-View-Binder bezeichnet und hilft dabei, Programme schneller und einfacher in Module für die Entwicklung und Wiederverwendung von Code zu unterteilen.
MVVM wurde aus dem Model View Controller-Muster abgeleitet und hilft bei der Behebung verschiedener Entwicklungsprobleme, um das Testen, Verfeinern, Warten und Entwickeln einer Anwendung zu vereinfachen. UI-Designer finden es einfacher, mit dem Modell zusammenzuarbeiten, wenn sie Teile einer App entwickeln.
Das MVVM-Muster
Das MVVM-Muster besteht aus drei Komponenten: Modell, Ansicht und Ansichtsmodell.
Modell
Das Modell enthält die Anwendungsdaten, bei denen es sich normalerweise um Strukturen oder einfache Klassen handelt. Es kann als Darstellung des Domänenmodells der App betrachtet werden, das ein Datenmodell sowie eine Validierungs- und Geschäftslogik enthält. Beispiele für Modellobjekte sind einfache alte CLR-Objekte (POCOs), Datenübertragungsobjekte (DTOs) sowie generierte Entitäts- und Proxyobjekte.
Ansicht
Die Ansicht definiert das Layout, die Struktur und das Erscheinungsbild dessen, was die Benutzer auf dem Bildschirm sehen. Dies ist das einzige, mit dem Endbenutzer vertraut sind und mit dem sie interagieren. In MVVM ist die Ansicht aktiv, was bedeutet, dass sie von einem Präsentator / Controller nicht vollständig bearbeitet wird. Es enthält Ereignisse, Verhaltensweisen und Datenbindungen, die Kenntnisse des zugrunde liegenden Modells und des Ansichtsmodells erfordern.
Modell anzeigen
Das Ansichtsmodell befindet sich zwischen der Modell- und der Ansichtsebene, in der sich die Steuerelemente für die Interaktion mit der Ansicht befinden. Es wird die Präsentationstrennung oder die Idee eingeführt, die Nuancen der Ansicht vom Modell zu trennen. Das Ansichtsmodell stellt Befehle und Methoden bereit und zeigt auf, um den Status der Ansicht beizubehalten, Ereignisse in der Ansicht auszulösen und das Modell zu bearbeiten.
Vorteile von MVVM
Softwareentwickler bevorzugen MVVM wegen seiner Vorteile:
Erweiterbarkeit
MVVM erleichtert Designern das Hinzufügen oder Ersetzen neuer Codeteile. Sie können die App-Benutzeroberfläche neu definieren, ohne den Code zu berühren, solange sich der Code vollständig in XAML befindet.
Testbarkeit
Mit MVVM ist es für Designer einfacher, Komponententests für die Kernlogik zu schreiben. Die Komponententests des Ansichtsmodells üben dieselbe Funktionalität aus, die von der Ansicht verwendet wird.
Transparenz in der Kommunikation
Das Ansichtsmodell bietet dem Ansichtscontroller eine transparente Oberfläche zum Auffüllen der Ansichtsebene und zur Interaktion mit der Modellebene. Dies führt zu einer transparenten Kommunikation zwischen den Schichten einer Anwendung.