Immer, wenn ich eine Lösung für etwas kodiere, tendiere ich dazu, entweder viele statische Klassen oder gar keine zu verwenden. Zum Beispiel musste ich in einem kürzlichen Projekt eine Klasse mit einigen string/bool/datetime Daten durch eine Anzahl von Ringen senden und das einzige, was nicht statisch war, war diese Daten haltende Klasse. Alles andere (3 ziemlich heftige Klassen mit unterschiedlichen Verarbeitungsaufgaben) waren statisch.Wann sollte man sich für statische Klassen entscheiden?
Ich denke, was ich hier frage ist eine Eingabe auf wann (und warum) sollte ich vermeiden, statische Klassen für diese Fälle "Prozess X, Ausgabe Y". Ist es in Ordnung, sie immer so lange zu benutzen, wie sie funktionieren oder schieße ich mich selbst in den Fuß bezüglich Skalierbarkeit, Plugin-Unterstützung usw.?
Ich hoffe, das ist eine gute Frage, die Sie hier stellen können. Ich frage nicht nach einem Argument, ob statische Klassen "besser" sind oder nicht, sondern nur, wann ich sie vermeiden sollte.
Das erste, was mir in den Sinn kommt, warum konnten Sie nicht die "Daten haltende Klasse" für die Manipulationen an ihren Daten verantwortlich machen? Dies würde die Notwendigkeit für eine Reihe von zusätzlichen statischen Klassen vermeiden und unnötige Kopplung reduzieren. –
Dies wurde bereits ausführlich hier behandelt, versuchen Sie diese Links für einen Anfang: [Verwendet für statische generische Klassen?] (Http://stackoverflow.com/questions/2685046/uses-for-static-generic-classes) & [Erweiterung Methoden vs statische Dienstprogrammklasse] (http://stackoverflow.com/questions/4646328/extension-methods-vs-static-utility-class) – slugster
Das Codeanalyse-Tool in VS 2008 wird immer empfehlen Methoden/Klassen sollte statisch sein, wenn sie keine Instanzdaten haben oder verwenden. Ist das eine gute Praxis? – Polyfun