Model-View-Controller-Paradigma
Dieser Artikel wird derzeit von einem Autor gründlich bearbeitet. Die Inhalte sind daher evtl. noch inkonsistent.
Die Regeln für GlossarWiki-Artikel sollten beachten werden.
Die Aussagen sollten inhaltlich verbessert bzw. präzisiert werden.
Bitte die Regeln der GlossarWiki-Quellenformatierung beachten.
Es sollten nicht nur Wikipedia-Artikel als Quelle verwendet werden.
Dieser Artikel ist nicht korrekt kategorisiert (siehe Regeln für GlossarWiki-Artikel).
Definition
MVC ist die Abkürzung für Model View Controller.
Das MVC-Paradigma bezeichnet ein Architekturmuster zur Trennung eines Programms in drei separate Einheiten: Datenmodell (Model), Präsentation (View) und Programmsteuerung (Controller). Vorteile dieses Paradigmas ist ein flexibles Programmdesign, welches Wiederverwendbarkeit der einzelnen Komponenten und reduzierte Komplexität gewährleistet, insbesondere bei großen Anwendungen.
Bemerkungen
Geschichte
Ursprünglich wurde das Model-View-Controller Paradigma 1978/79 von der Firma Xerox für die GUI-Programmierung eingeführt. Zum Einsatz kam die damals ebenfalls von Xerox entwickelte objektorientierte Programmiersprache Smalltalk.
Damals war es nicht unüblich in Spaghetti-Code zu entwickeln, was mit vielen Nachteilen verbunden ist. In neueren Programmiersprachen wie Java kommt MVC ebenfalls bei der GUI-Programmierung zum Einsatz und ist allgemeiner Standard beim Entwurf komplexer Softwaresysteme, bei denen die Anwendungslogik von anderen Teilen des Systems getrennt werden soll.
Eine Variante ist MVC2 (MVC Model 2 bzw. MVC Version 2), die speziell für Webanwendungen gedacht ist.
Vorteile
Das MVC-Paradigma bietet eine Reihe von Vorteilen:
- Gut strukturiertes Design durch klare Trennung der Anwendungslogik von den dazugehörenden Daten und der Benutzerinteraktion.
- Änderungen an einer Komponente sind möglich, ohne dass andere Komponenten davon betroffen werden; sogar ganze Komponenten können ausgetauscht werden.
- Mehrere Ansichten des Systems können durch Austausch verschiedener Views realisiert werden.
- Im Fehlerfall ist die Suche nach dem Fehler in der Regel auf eine Komponente beschränkt.
- Erweiterbarkeit bestehender Systeme, indem neue Komponenten hinzugefügt werden. Alte Komponenten können aus Kompatibilitätsgründen erhalten bleiben.
Insgesamt sind Programmcode und Komponenten übersichtlicherer und einfacher zu warten, zu ändern und auszutauschen.
Nachteile
Auch wenn die Vorteile überwiegen, gibt es dennoch ein paar Nachteile:
- Bei der Planung und Implementierung ist wesentlich mehr Gründlichkeit erforderlich
- Erheblicher Mehraufwand bei kleinen Applikationen
Konzept
In Arbeit ...
Anwendungsgebiete
In Arbeit ...
Beispiele
Beispiele machen sich auch nicht schlecht.
Quellen
Wenn die Definitionen und/oder die Anmerkungen nicht von einem selbst stammen, sollte man die Quellen angeben (das sind natürlich nur Beispiele, keine echten Quellen dieses Artikels :-) ):
- Hinz und Kunz, "Der Bau einer Musterseite", 7. Auflage, Wiki-Verlag, 1931
Besser ist es spezielle Quellendokumente zu erstellen (und diese dann auch mit Inhalt zu füllen):
- Kowarschick, W. et al. (2005): Musterquelle (Buch)
- Goldratt, E.; Cox , J. (2004): The Goal
- Leach, L. (2005): Critical Chain Project Management
Auch externe Quellen können zitiert werden.
- Kowarschicks gesammelte Werke (besser als eigenes Quellen-Dokument, basierend auf der Vorlage:Quelle:URL)
- Wikipedia (so nicht, da zu allgemein und außerdem nicht der Wikipedia-Verweis benutzt wurde)
- Wikipedia:Vorlage (Datenverarbeitung) (sondern eher so, aber noch besser auch als eigenes Quellen-Dokument)