Ich mag so etwas wie dies tun:Ist es eine schlechte Übung, den Status in einer statischen Klasse zu haben?
public class Foo {
// Probably really a Guid, but I'm using a string here for simplicity's sake.
string Id { get; set; }
int Data { get; set; }
public Foo (int data) {
...
}
...
}
public static class FooManager {
Dictionary<string, Foo> foos = new Dictionary<string, Foo>();
public static Foo Get (string id) {
return foos [id];
}
public static Foo Add (int data) {
Foo foo = new Foo (data);
foos.Add (foo.Id, foo);
return foo;
}
public static bool Remove (string id) {
return foos.Remove (id);
}
...
// Other members, perhaps events for when Foos are added or removed, etc.
}
Dies würde mir erlauben, die globale Sammlung von Foo
s von überall zu verwalten. Allerdings wurde mir gesagt, dass statische Klassen immer zustandslos sein sollten - Sie sollten sie nicht zum Speichern globaler Daten verwenden. Globale Daten scheinen im Allgemeinen verpönt zu sein. Wenn ich eine statische Klasse nicht verwenden sollte, was ist der richtige Weg, dieses Problem anzugehen?
Hinweis: Ich habe eine similar question finden, aber die Antwort gibt es nicht wirklich in meinem Fall.
Ja, wir sollten alle mehr globale Variablen und gotos verwenden ... – Lucas
Verwenden Sie es, wenn Sie müssen, aber klug sein, Probleme zu vermeiden. Später sollte man agil sein, um etwas Besseres zu erreichen. –