singleton

原创 2016年08月30日 22:16:48
// It applies only to single-threaded
public sealed class Singleton1
{
	private Singleton1()
	{
	}
	
	private static Singleton1 instance = null;
	public static Singleton1 Instance
	{
		get
		{
			if(null == instance)
				instance = new Singleton1();
			return instance;
		}
	}
}

// It can be used for multi-threaded
public sealed class Singleton2
{
	private Singleton2()
	{
	}

	private static readonly object syncObj = new object();

	private static Singleton2 instance = null;
	public static Singleton2 Instance
	{
		get
		{
			lock(syncObj)// This step spent a lot of time
			{
				if(null == instance)
					instance = new Singleton2();
			}
			return instance;
		}
	}
}

// The better way than the second method
public sealed class Singleton3
{
	private Singleton3()
	{
	}

	private static readonly object syncObj = new object();

	private static Singleton3 instance = null;
	public static Singleton3 Instance
	{
		get
		{
			if(null == instance)
			{
				lock(syncObj)// This step spent a lot of time
				{
					if(null == instance)
						instance = new Singleton3();
				}
			}
			return instance;
		}
	}
}

// The C# language way 
public sealed class Singleton4
{
	private Singleton4()
	{
	}

	private static Singleton4 instance = new Singleton4();
	public static Singleton4 Instance
	{
		get
		{
			return instance;
		}
	}
}

//The C# language way 2
public sealed class Singleton5
{
	Singleton5()
	{
	}

	public static Singleton5 Instance
	{
		get{
			return Nested.instance;
		}
	}

	class Nested{
		static Nested(){}
		internal static readonly Singleton5 instance = new Singleton5();
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Common_singleton

  • 2016-05-09 10:52
  • 777B
  • 下载

[设计模式]SINGLETON(单件)_对象创建型模式

1. 意图保证一个类仅有一个实例,并提供一个访问它的全局访问点。 2. 动机对一些类来说,只有一个实例是很重要的。虽然系统中可以有许多打印机,但却只应该有一个打印假脱机( printer spoole...

单例模式、Singleton

单例Singleton。

#import @interface CommonLoadingViewController : NSObject { UIActivityIndicatorView *LoadingVi...

C++完美实现Singleton模式

  • 2014-05-21 13:04
  • 16KB
  • 下载

Singleton 设计模式

  • 2014-04-08 13:27
  • 28KB
  • 下载

设计模式--单例模式(Singleton)

单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化对个对象,一个最好的办法就是让类自身负责保存它的唯一实例,这个类可以保...
  • jtmai
  • jtmai
  • 2011-07-05 22:51
  • 138

单例极致 singleton C++

  • 2015-06-26 16:28
  • 66KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)