以下是創建對象時遇到的特定問題,例如集合,這些對象需要在整個應用程序範圍內可用。收藏和應用廣泛使用?
我有以下類:
class UserDataCollection
{
List<UserData> Collection = new List<UserData>();
UserData current;
public UserData Current
{
get { return current; }
set
{
current = value;
}
}
public UserDataCollection(UserData userdata)
{
this.current = userdata;
}
public void Add (UserData item)
{
Collection.Add(item);
}
}
現在對每一個的UserData對象我想補充,它會創建一個新的列表對象,每次我去UserDataCollection datacoll = new UserDataCollection(userdata);
所以,我的目標永遠不會添加到相同的集合中,這不是該集合的要點。
這是一個很好的單例情況,或者只是在應用程序初始化時創建對象並始終使用相同的對象?
什麼是這樣的最好的設計實踐?
靜態集合將需要更多的線程安全代碼。 – 2009-12-18 17:38:23
那麼我還沒有掌握一個靜態對象的屬性,你或者有人可以詳細說明一下嗎? – 2009-12-18 17:40:11
@Tony,靜態屬性就像是一個全局變量..任何時候都可以被任何東西訪問,因此在多線程應用程序中,一個線程可能會在另一個線程之前更改靜態變量的值。這被稱爲比賽條件。 – 2009-12-18 17:47:41