什么叫单例模式,如何实现,有什么作用?

Python08

什么叫单例模式,如何实现,有什么作用?,第1张

就是只有一个实例,最简单的单例模式可以用static来实现。

比如下面的_Context变量就是用了单利模式,下面的代码就是外面想调用_Context时,如果_Context已经实例化,那么直接返回,如果没实例化,就实例化它再返回。全局只有一个_Context

比如

public class EESGateway

{

private static EESDatabaseDataContext _Context = null //EESDatabasDataContex Instance

private const string databaseName = "EESDatabase" //Database name

/// <summary>

/// Return EESDatabaseDataContext instance.

/// </summary>

/// <returns>EESDatabaseDataContext instance</returns>

public static EESDatabaseDataContext DataContext()

{

if (_Context == null)

{

lock (typeof(EESGateway))

{

//formate a new string to store the connectionString

String connectionString = ConfigurationManager.ConnectionStrings["EESDatabase"].ConnectionString

//create a dataContext using the connectionString above

_Context = new EESDatabaseDataContext(connectionString)

}

}

return _Context

}

}

Once 结构体 和 Go()方法都是位于 sync 包下,主要为了保证 Do(func) 中的 func 只执行一次,用于单例模式是比较好的方案。

原理: