1,单例模式主要运用于,确保对象在整个程序中只初始化一次,并且提供给整个程序访问。
2,在实际运用过程中大家可能有疑问:如果多个程序块同时访问该对象会不会造成,程序块之间互相抢占该对象,从而导致资料浪费。
3,答案是:确实会存在该问题,但是我们有解决方案。我们常用的解决方案:类似于多线程互相抢占资源的方案是类似的,就是给它加上访问锁。
4,下面是我在实际开发中运用的单例类初始化的部分代码:
/// <summary>
/// 小车控制器
/// </summary>
public class CarController
{
public CarController() { }
#region 成员变量
private static object m_instanceSyncLock = new object(); // 同步实例对象
private static CarController m_instance; // 该类实例对象
#endregion
public static CarController Instance
{
get
{
lock (m_instanceSyncLock)
{
if (m_instance == null)
{
m_instance = new CarController();
}
return m_instance;
}
}
}
}
希望对大家理解单例模式起到一定的作用。