5 Stimmen

Unter welchen Umständen sollte ich eine Singleton-Klasse verwenden?

Geschlossen als exaktes Duplikat von diese Frage . Aber wieder geöffnet, da die anderen Singleton Fragen sind für den allgemeinen Gebrauch und nicht für DB-Zugriff verwenden

Ich habe darüber nachgedacht, eine interne Datenzugriffsklasse zu einem Singleton zu machen, konnte mich aber nicht davon überzeugen, vor allem weil die Klasse außer den lokalen Variablen in ihren Methoden keinen Status hat.

Welchen Sinn hat es schließlich, solche Klassen als Singletons zu konzipieren?
Gewährleistet sie einen sequentiellen Zugriff auf die Datenbank, was nicht überzeugend ist, da die meisten modernen Datenbanken die Gleichzeitigkeit gut handhaben können?
Ist es die Möglichkeit, eine einzige Verbindung wiederholt zu verwenden, die durch das Pooling von Verbindungen behoben werden könnte? Oder ist es die Einsparung von Speicherplatz durch die Ausführung einer einzigen Instanz?

Bitte klären Sie mich diesbezüglich auf.

0voto

Tracker1 Punkte 18421

Mit c# würde ich sagen, dass ein Singleton selten angemessen ist. Die meisten Anwendungen für ein Singleton sind besser mit einer statischen Klasse zu lösen. Die Beachtung der Threadsicherheit ist bei statischen Klassen jedoch extrem wichtig. Für den Datenbankzugriff wollen Sie wahrscheinlich keine einzelne Verbindung, wie oben erwähnt. Am besten ist es, eine Verbindung zu erstellen und das eingebaute Pooling zu nutzen. Sie können eine statische Methode erstellen, die eine neue Verbindung zurückgibt, um den Code zu reduzieren, wenn Sie möchten. Allerdings kann ein ORM-Muster/Framework noch besser sein.

In c# 3.5 können Erweiterungsmethoden besser geeignet sein als eine statische Klasse.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X