标准结构

.Net Framework中使用的模式-Singleton模式

SqlConnectionFactory中的Singleton模式:

sealed class SqlConnectionFactory
{
    public static readonly SqlConnectionFactory SingletonInstance;

    static SqlConnectionFactory()
    {
        SingletonInstance = new SqlConnectionFactory();
    }   	
}

Double Check 版本:

sealed class SqlConnectionFactory
{
    private static volatile SqlConnectionFactory _instance;
    private static object _lock = new object();

    public static SqlConnectionFactory Instance()
    {
        if(_instance == null)
        {
            lock(_lock)
            {
                if(_instance == null)
                {
                    _instance = new SqlConnectionFactory ();
                }
            }
        }

        return _instance;
    }
}

使用volatile关键字禁止编译器对代码进行优化。

.NET平台特定实现:

sealed class SqlConnectionFactory
{
    private SqlConnectionFactory() {}
    public static readonly SqlConnectionFactory Instance = new SqlConnectionFactory();
}

相关文章:

  • 2021-12-10
  • 2021-08-24
  • 2021-08-17
  • 2022-02-17
  • 2021-07-18
  • 2021-11-24
  • 2021-12-26
猜你喜欢
  • 2021-07-11
  • 2021-12-01
  • 2022-02-04
  • 2022-02-24
  • 2021-10-28
  • 2021-11-08
  • 2021-11-21
相关资源
相似解决方案