📦 MVC-Modell (Model-View-Controller)
Das MVC-Modell ist ein Software-Architekturmuster, das in der Anwendungsentwicklung weit verbreitet ist, um Anwendungen zu strukturieren und die Aufgaben klar zu trennen. Es ermöglicht Entwicklern, große und komplexe Anwendungen besser zu organisieren und zu warten. Jede der drei Komponenten – Model, View und Controller – hat eine spezifische Rolle und Verantwortung in der Anwendung.
📑 1. Model (Modell)
Das Model ist die Herzstück-Komponente des MVC-Musters. Es repräsentiert die Datenstruktur und die Geschäftslogik der Anwendung und verwaltet alle datenbezogenen Aufgaben wie das Speichern, Bearbeiten und Löschen von Daten. Die Datenbank-Interaktionen geschehen meist über das Model.
Aufgaben des Models:
- 🗂️ Datenverwaltung: Das Model verwaltet die Daten der Anwendung, unabhängig davon, ob diese aus einer Datenbank, einer API oder einer anderen Quelle stammen.
- 🛠️ Geschäftslogik: Es ist verantwortlich für die Durchführung von Geschäftsprozessen und Berechnungen. Wenn z.B. eine Bestellung erstellt wird, führt das Model die Berechnungen für den Endpreis oder Rabatte durch.
- 🔄 Daten-Validierung: Das Model prüft die Konsistenz und Richtigkeit der Daten, bevor diese gespeichert oder weiterverarbeitet werden.
- 🔗 Datenbankzugriffe: Es interagiert direkt mit der Datenbank, um Daten zu lesen, zu speichern, zu aktualisieren oder zu löschen. In den meisten Frameworks erfolgt dies über sogenannte ORMs (Object-Relational Mappers), wie z.B. Eloquent in Laravel.
Beispiel:
In einer E-Commerce-Anwendung könnte das Benutzer-Model (User) Informationen über einen Kunden speichern, wie z.B. Name, E-Mail-Adresse, Rechnungsadresse und Bestellhistorie. Wenn ein Benutzer seine Adresse ändert, aktualisiert das Model diese Informationen in der Datenbank.
👁️ 2. View (Ansicht)
Die View ist für die Präsentation der Daten an den Benutzer zuständig. Sie stellt die Benutzeroberfläche dar und ist meist in HTML, CSS und JavaScript geschrieben, wenn es sich um eine Webanwendung handelt. Die View empfängt Daten vom Model und zeigt sie in einer benutzerfreundlichen Form an, ohne selbst Geschäftslogik oder Datenverarbeitung vorzunehmen.
Aufgaben der View:
- 🖥️ Präsentation der Daten: Die View übernimmt die visuelle Darstellung von Daten, die vom Model bereitgestellt werden. Sie zeigt beispielsweise Benutzerinformationen, Bestelldetails oder Produktlisten an.
- 🎨 Benutzeroberfläche: Die View kümmert sich um die Gestaltung der Benutzeroberfläche und sorgt für eine angenehme Benutzererfahrung. Dies umfasst sowohl statische Inhalte (Texte, Bilder) als auch dynamische Inhalte, die basierend auf den Model-Daten gerendert werden.
- 🚫 Keine Geschäftslogik: Die View ist lediglich für die Darstellung verantwortlich. Sie enthält keine Geschäftslogik oder Datenverarbeitung.
Beispiel: