Hallo,
da ich mein Problem nicht einmal grob kategorisieren kann, möchte ich mein Vorhaben kurz erläutern.
Ich möchte ein Programm schreiben, dass seine Daten in einer Datenbank verwaltet. Dabei soll der Anwender die Möglichkeit erhalten, zwischen mehreren möglichen Datenbanken auszuwählen, also beispielsweise zwischen HSQLDB, mySQL und postgreSQL.
Von der Programmstruktur stelle ich mir das in etwa folgendermaßen vor:
Im Hauptprogramm wird eine Instanz der Datenbank erzeugt DbConnection connection = new DbConnection(Datenbankname). Innerhalb der Klasse DbConnection soll dann entsprechend dem Datenbanknamen die richtige, spezialisierte Datenbankklasse erzeugt und als DbConnection Objekt zurück gegeben werden. Im Programm möchte ich dann beispielsweise mit connection.connect(parameter) die entsprechende Funktion der spezialisierten Datenbankklasse aufrufen. Dabei müssen natürlich alle Klassen die gleichen Funktionen implementieren.
Der Sinn dabei ist, dass ich den kompletten Zugriff auf die Datenbanken kapseln möchte und innerhalb des Programms ohne eine Unterscheidung, welche Datenbank nun genau genutzt wird, die Funktionen nützen möchte.
Hat hier jemand eine Idee, ob und wie dieses Vorhaben umgesetzt werden kann? Dieses Problem tritt ja vermutlich häufiger auf. Selbst ein Tipp, mit welcher Methode oder mit welchem Pattern ich das Problem lösen könnte, wäre ausreichend, da ich dann danach suchen könnte. Ich bin sicher, dass mir hier jemand helfen kann.
Vielen Dank
da ich mein Problem nicht einmal grob kategorisieren kann, möchte ich mein Vorhaben kurz erläutern.
Ich möchte ein Programm schreiben, dass seine Daten in einer Datenbank verwaltet. Dabei soll der Anwender die Möglichkeit erhalten, zwischen mehreren möglichen Datenbanken auszuwählen, also beispielsweise zwischen HSQLDB, mySQL und postgreSQL.
Von der Programmstruktur stelle ich mir das in etwa folgendermaßen vor:
Im Hauptprogramm wird eine Instanz der Datenbank erzeugt DbConnection connection = new DbConnection(Datenbankname). Innerhalb der Klasse DbConnection soll dann entsprechend dem Datenbanknamen die richtige, spezialisierte Datenbankklasse erzeugt und als DbConnection Objekt zurück gegeben werden. Im Programm möchte ich dann beispielsweise mit connection.connect(parameter) die entsprechende Funktion der spezialisierten Datenbankklasse aufrufen. Dabei müssen natürlich alle Klassen die gleichen Funktionen implementieren.
Der Sinn dabei ist, dass ich den kompletten Zugriff auf die Datenbanken kapseln möchte und innerhalb des Programms ohne eine Unterscheidung, welche Datenbank nun genau genutzt wird, die Funktionen nützen möchte.
Hat hier jemand eine Idee, ob und wie dieses Vorhaben umgesetzt werden kann? Dieses Problem tritt ja vermutlich häufiger auf. Selbst ein Tipp, mit welcher Methode oder mit welchem Pattern ich das Problem lösen könnte, wäre ausreichend, da ich dann danach suchen könnte. Ich bin sicher, dass mir hier jemand helfen kann.
Vielen Dank