Entkopplung der Schichten
-
Ich habe in vielen schönen Büchern gelesen und in Vorlesungen gehört, dass in einem wartungsfreundlichen Programm die Schichten voneinander unabhängig gehalten werden sollten.
Unter Schichten verstehe ich:
View
Controller
Model
Controller
Database.Das Model-View-Controller-Konzept habe ich auch schon umgesetzt, nur habe ich nichts richtiges zum Anschliessen der Datenhaltung gefunden.
Mein Ziel ist es, die Datenhaltung allgemein und unabhängig vom Model zu implementieren. D.h. es soll egals ein, ob die Daten aus einer Textdatei, einer Binärdatei, XML-Datei, Datenbank (komplett oder Stückchenweise) eingelesen und herausgeschrieben werden.Hat jemand damit Erfahrung und kann mir einen Tipp zur Realisierung geben?
-
Bisschen allgemein die Frage, daher gilt das gleiche auch für meine Antwort.
Du musst für deine Programm eine Datenschicht entwickeln die den Zugriff für die Anwendung abstrahiert. Den Zugriff auf das "Datenmedium" (Textdatei, Datenbank, ...) kannst du dann beliebig modifizieren ohne das die "Anwender" deiner Datenschicht davon betroffen sind.
Ich hoffe ich habe deine Frage richtig verstanden.mfg JJ
-
Ok, dass hast du richtig verstanden, dass ich es abstrahieren muss. Das weiß ich auch.
Nur meine Frage ist, wie ich es so gestalten kann, dass es so allgemein ist, dass es wirklich für das eigentliche Programm bzw. das Model ganz egal ist, was angeschlossen ist und auch da nicht geändert werden brauch, wenn ich von einer Datenhaltung auf eine andere umsteige.Ich hatte mir bisher (habe es aber noch nicht umgesetzt) das gleich wie beim MVC-Modell überlegt. Es gibt also Modellklassen, die von Datenklassen beobachtet werden. Verbunden sind beide mit einem Controller. Dabei weiß die Modellklasse nichts von seiner Datenklasse.
Die Datenklasse wiederum hat einen Reader und Writer, der die Daten in ein spezielles Medium einliest und herausschreibt.