Sollte ich verwenden die Statische Klasse für die Datenbank-Konnektivität in C#.net?
Habe ich eine Klasse, die enthalten alle Datenbank-Verbindung-Aktivitäten. Was ich wissen möchte ist wenn ich diese Klasse als static, dann kann ich überall, ohne Sie zu erschaffen.
aber die Anwendung läuft in anderen pcs im gleichen Netzwerk in der gleichen Zeit.
SONST
sollte ich eine normale Klasse verwendet werden kann, die in anderen Klassen Erben Sie?
- welche Plattform? asp.net? winforms? wpf? silverlight? wenn Ihr eine desktop-app, egal, wenn es läuft auf verschiedenen PC ' s oder nicht. statische lokal auf dem Rechner der code ausgeführt wird.
- Sie sollten sich auf die Implementierung eines singleton für die Verbindung zur Datenbank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer statischen Klasse vielleicht entrümpeln Sie Ihren code etwas. Es ist keine schlechte Idee.
Aber ich bin mir nicht sicher, was das hat zu tun mit der Anwendung, die Sie auf verschiedenen pcs im gleichen Netzwerk sind.
Abgesehen von entrümpeln es gibt einen guten Grund, warum die Klasse, die die macht der Datenbank-Verbindung sollte statisch sein. In der Regel in einer Anwendung, die eine db-Verbindung ist alles, was Sie brauchen. Die Art und Weise seine in der Regel so konzipiert ist, dass Sie eine statische Klasse mit einer statischen Methode. Beim ersten Aufruf der statischen Methode überprüft, ob das connection-Objekt ist null. Wenn ja, erstellt er eine neue Verbindung und gibt dieser. Für die Zukunft fordert, die Methode wird einfach nur wieder diese Verbindung.
Dies macht es auch einfacher, um sicherzustellen, dass Sie die enge Verbindung, weil jetzt alles, was Sie brauchen, ist eine statische Methode in dieser Klasse, schließt diese Verbindung.
Hoffe, das hilft.
Sollten Sie die Tatsache berücksichtigen, dass das bilden von Klassen static machen Ihnen schwer unit testen.
Hier sind zwei links, die diskutieren das Thema:
Statisch ist universell "böse" für unit-Tests und wenn ja, warum tut resharper empfehlen?
Statische Methoden sind der Tod für Testbarkeit
Grundsätzlich eine statische Dinge macht Sie auch schwer zu isolieren und entfernen Sie Abhängigkeiten.
Die Entscheidung machen die Daten-Klassen zugreifen
static
oder nicht hat nichts zu tun mit dem Zweck die Klasse in diesem Fall (das ist rein Daten-Zugriff). Wichtiger ist die Tatsache ist, es sollte co-Angleichung an das Allgemeine design Ihres Projekts oder Systems und für Sie und für team-Mitglieder sollte es sein, leicht zu pflegen. Ich würde empfehlen, Aufteilung der Klassen auf der Grundlage von Tabellen-Zugang und machen Sie symmetrisch in Bezug auf design. Nachdem dies gesagt ist, einige wichtige Fragen, die Sie sollten vorsichtig sein, über Ihre Daten-access-Klassen sind...nicht verwenden die statische Klasse können Sie Ihre Verbindungszeichenfolge statisch,denn wenn mehrere Benutzer Zugriff auf statische Klasse kann das problem
Ich würde nicht gehen für eine statische Klasse. Es kann entrümpeln, aber es gibt immer vor-und Nachteile. Ich würde auch bleiben Weg von Erben einige Basis-Klasse. Als der GoF sagte: favour composition over inheritance.
So eine Fabrik würde in handliches kommen hier:
Wo DatabaseConnectionFactory injiziert oder übergeben.
HTH