我有這樣的單身課。這真的是一個單身人士嗎?
class UserInteraction
{
private CustomerInformation _loginDetails;
private MusicDetails[] _musicFilesDownloaded;
private static volatile UserInteraction _interactionObject = null;
private static object syncRoot = new Object();
private UserInteraction()
{
}
public static UserInteraction Instance
{
get
{
if (_interactionObject == null)
{
lock (syncRoot)
{
if (_interactionObject == null)
_interactionObject = new UserInteraction();
}
}
return _interactionObject;
}
}
public CustomerInformation UserInfo
{
get
{
return _loginDetails;
}
set
{
_loginDetails = value;
}
}
public MusicDetails[] FilesDownloaded
{
get
{
return _musicFilesDownloaded;
}
set
{
_musicFilesDownloaded= value;
}
}
public void PurgeContents()
{
}
public void SerializeValues()
{
}
}
我可以使用下面的代碼來訪問此singleton類
UserInteraction.Instance.UserInfo.CardData = "";
我的問題如下
1)正如你可以看到我可以讀取/寫入的UserInfo結構,即意味着我可以任意數量的UserInfo副本。這是否違反SingleTon的法律? 2)如果這違背了Singleton的規律,我怎麼能在同一時間禁止UserInfo的重複賦值呢?
謝謝。
+1有趣的架構/設計問題。 =) – 2011-06-09 12:40:52