Instanzen von (abgeleiteten) Klassen finden

Hallo zusammen,

ich habe eine klasse A geschrieben die mehrfach abgeleitet wird
Klasse A bietet ein Connection Object (Shared) für den Datenbankzugriff. Die Idee ist, dass die erste klasse die eine Datenbankverbindung benötigt die Verbindung herstellt und die verbindung in alle klassen verfügbar ist!
Funktioniert das so oder hab ich da einen Denkfehler, weil evtl die Abgeleiteten klassen nach dem ableiten ihre eigenen Member haben und das dann nur pro klasse gilt?
Also wenn ich die Objekte B (abgeleitet von A )und C (abgeleitet von A) habe und dann mit B eine Datenbankverbindung aufbaue, die Datenanbindung nur für alle B - Instanzen gilt?!

Achso ich arbeite mit VB.Net 2010 (aber tut wahrscheinlich nicht viel zur Sache)

lg Enrico

Hallo,

diese Sache mit dem Datenbankzugriff und den verschiedenen Klassen ist wohl eher ein Designproblem deinerseits.

Die Beziehung der Klassen zu der Datenbankklasse ist ein „hat ein“ und nicht „ist ein“.

Will sagen, die Klasse zur Datenbankanbindung ist gut, sollte dann aber als Member in den anderen Klassen abgebildet sein.

Die Klassen, mit denen du auf die Daten der Datenbank zugreifen willst, sollten nicht von der Klasse abgeleitet sein, die den Datenbankzugriff regelt.

Grüße,

Hm, ja, dachte ich mach das in der Basisklasse, da alle abgeleiten klassen die gleich Datenbank verwenden, wollte auf diese weise verhindern das jeder klasse eine eigene Verbindung aufbauen muss… weg performance (… und ein klein wenig wegen Bequemlichkeit :smile: )

vielen Dank für die schnelle Antwort :smile:

Enrico

Hallo,

du kannst schon eine Klasse die Verbindung aufbauen lassen. Du kannst die Datenbankverbindung ja auch in statischen Membern machen. Diese stehen dann allen Instanzen deiner Verbindungsklasse tur Verfügung. Das gleiche must du ja auch machen, wenn du deine ableitgeschichte machen willst.

Grüße,

Hallo,

hab ich jetzt gemacht :smile:
war nur ein bisschen auf dem Holzweg als ich geglaubt habe das für alle beteiligten klassen von der Basisklasse aus Steuern zu können. Da ja alle abgeleiteten Klassen auf die Gleiche Datenbank zugreifen.

Wobei mir gerade einfällt…
da ich das Connectionobjekt ja

Protected Shared Connection As ...

deklariert habe ist es jetzt in allen Instanzen verfügbar. Aber wie stell ich fest wann die letzte Instanz beendet wird um die Verbindung zu schließen?

Enrico