DB Komunikation abkapseln oder in der selben klasse?

26/05/2009 - 08:19 von Albert Andersson | Report spam
Hallo

Ich überlege mir bei einem Projekt alles was mit der DB zu tun hat in
eine eigene Klasse abzukapseln.

Diese Klasse könnte ich dann als Singleton implementieren und so die
Verbindung global handhaben.

Aber wie weit macht diese Abkapselung überhaupt sinn? Ist es klug da
quasi nochmal die SQLCommand / SQLConnection zu erstellen um dann mit

Datatable dt;
dt.Load(DBHandler.GetReader(SqlCmd));

An die Daten zu kommen?

Oder ist der Aufwand es nicht wert und man sollte das lieber in jeder
Klasse einzeln machen?

Könnt ihr mir hier Erfahrungen / Tipps mitgeben?

Danke

Albert
 

Lesen sie die antworten

#1 Peter Fleischer
26/05/2009 - 13:48 | Warnen spam
"Albert Andersson" schrieb im Newsbeitrag
news:gvg1lp$q38$

Ich überlege mir bei einem Projekt alles was mit der DB zu tun hat in eine
eigene Klasse abzukapseln.



Hi Albert,
das mach eich immer so (DAL - Datenzugriffsschicht):

Diese Klasse könnte ich dann als Singleton implementieren und so die
Verbindung global handhaben.



Die Klasse selbst braucht nicht als Singleton ausgebildet zu werden. Wichtig
ist, dass auf gemeinsam genutzte Datenpuffer statisch verweisen wird. Damit
existieren sie nru ein Mal im Projekt.

Aber wie weit macht diese Abkapselung überhaupt sinn? Ist es klug da quasi
nochmal die SQLCommand / SQLConnection zu erstellen um dann mit

Datatable dt;
dt.Load(DBHandler.GetReader(SqlCmd));

An die Daten zu kommen?



Hol dir aus dem DAL-Objekt nur den Verweis auf den Datepuffer oder reiche
die BindingSource an die DAL, damit sie dort den Verweis auf die Datenquelle
eintràgt.

Oder ist der Aufwand es nicht wert und man sollte das lieber in jeder
Klasse einzeln machen?



Genau das würde ich nicht machen, da dadurch der Überblick verloren gehen
kann und eine Wartung sehr erschwert werden kann.

Könnt ihr mir hier Erfahrungen / Tipps mitgeben?



DAL aufbauen, die von allen Punkten im Projekt genutzt wird.

Viele Grüsse
Peter

Ähnliche fragen