我願做這樣的事情:在靜態類中有狀態是不好的做法嗎?
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.
}
這將讓我從任何地方管理的Foo
論全球化集合。但是,我被告知靜態類應該永遠是無狀態的 - 你不應該使用它們來存儲全局數據。一般來說,全球數據似乎不受歡迎。如果我不應該使用靜態類,那麼解決這個問題的正確方法是什麼?
注意:我確實找到了similar question,但給出的答案並不適用於我的情況。
是的,我們都應該使用更多的全局變量和gotos ... – Lucas 2010-05-02 22:17:49
當你必須使用它,但要聰明,以避免問題。稍後敏捷地轉向更好的東西。 – 2010-05-02 23:43:01