我有一个这样的单例类。
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()
{
}
}
我可以使用下面的代码来访问这个单例类
UserInteraction.Instance.UserInfo.CardData = "";
我的问题如下
1) 如您所见,我可以读取/写入 UserInfo 结构,这意味着我可以复制任意数量的 UserInfo。这是否违反了 SingleTon 的法律?
2)如果这样违反了Singleton的规律,如何在给UserInfo赋值的同时禁止重复UserInfo呢?
谢谢。
我是一名优秀的程序员,十分优秀!