🏠 » Lexikon » M » Model View Controller Pattern

Model View Controller Pattern

Das Model View Controller (kurz MVC)-Pattern ist ein Architekturmuster bzw. Entwurfsmuster, das einen flexiblen Programmentwurf bietet, eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht.

Das MVC-Pattern findet bei Anwendungen mit grafischer Benutzeroberfläche Verwendung. Es teilt das Programm in drei grundlegende Bestandteile: Das Model (MVC) verwaltet die Datenstruktur der Anwendung, Views sorgen für die grafische Oberfläche zur Nutzerinteraktion (MVC) und die Controller stellen die Programmlogik (MVC) bereit.

Model View Controller Pattern - Aufbau und Funktion

Anwendungen, welche nach den Prinzipien von MVC gestaltet werden, bestehen aus drei austauschbaren Komponenten. Das Model besteht aus mehreren Model-Klassen. Jede repräsentiert eine grundlegende Einheit innerhalb der verwendeten Datenstruktur. Sie stellen darüber hinaus grundlegende Datenperationen zur Verfügung, welche nicht der prinzipiellen Programmlogik zugehörig sind. Beispiele dafür wären die Suche gewisser Inhalte oder das Hinzufügen und Löschen von Daten.

Model View Controller Pattern Definition & Erklärung | Datenbank Lexikon

View-Klassen stellen die grafische Benutzeroberfläche bereit. Die Model-Klassen stellen die angezeigten Daten zur Verfügung, eine direkte Verbindung zwischen den beiden Programmteilen existiert allerdings nicht. Der Controller informiert die Bestandteile der Oberflächendarstellung über Änderungen am Model und diese passen die angezeigten Inhalte bei Bedarf an.

Die Controller-Klassen fungieren als Verbindungsstück zwischen View- und Model-Bestandteilen. Aktionen der Nutzer leitet der View zum Controller weiter, welcher die dahinterstehende Programmlogik ausführt. Die Logik informiert einzelne Views im Bedarfsfall über Änderungen am Model, um eine passende Reaktion auf diese zu ermöglichen.

Model View Controller Pattern - Vorteile

Das Model View Controller Pattern liefert zwei große Vorteile. Zum Ersten sind Darstellung, Datenmanagement und Programmlogik derart getrennt, dass Änderungen innerhalb eines Teilbereichs keine negativen Auswirkungen auf die jeweilig Anderen haben. So kann beispielsweise eine neue Nutzeroberfläche an dieselben Model- und Controller-Klassen angeschlossen oder interne Operationen der Datenstruktur, zum Beispiel ein verbesserter Suchalgorithmus, unbemerkt eingebracht werden.

Darüber hinaus erleichtert diese Aufteilung die Arbeit in Teams. Sofern die Schnittstellen zwischen Model-, View- und Controller-Klassen bekannt sind, arbeiten die Entwickler aller drei Teilbereiche völlig autark.

MVC-Pattern in der Datenbankentwicklung

Die Einkaufsabteilung eines Lebensmittelladens muss auf Knopfdruck in Erfahrung bringen, wie viele der gelagerten Produkte abgelaufen sind und nachbestellt werden müssen. Nahrungsmittel besitzen jeweils (stark vereinfacht) einen Namen und ein Mindesthaltbarkeitsdatum. Dies stellt das Model dar. Der View beinhaltet zu beginn eine leere Liste und einen Button. Die Betätigung des Buttons veranlasst den Controller, alle Artikel aus dem Model zu laden und auf deren Verfallsdatum zu prüfen. Er instruiert die Datenbank, die betreffenden Artikel zu entfernen. Diese Änderung wird dem View mitgeteilt, welcher sie als auszusortieren in der Liste darstellt.