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();
	}
}

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

单例模式(Singleton)的6种实现

  • 2017年11月02日 11:14
  • 1.17MB
  • 下载

Java设计设计模式之单例模式(Singleton)

单例模式在日常应用开发过程中被大量使用到,如在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。   单例模式的特点如下: 1、运行时只有一个实例供其他对象...

Common_singleton

  • 2016年05月09日 10:52
  • 777B
  • 下载

单例设计模式(singleton)

单例设计模式的概念:            作为对象创建模式,档里模式确保某个类只有一个实例对象,而且自行创建实例并向整个系统提供这个实例。这个类称为单例类!       单例模式的提点:      ...

C++完美实现Singleton模式

  • 2014年05月21日 13:04
  • 16KB
  • 下载

Singleton 设计模式

  • 2014年04月08日 13:27
  • 28KB
  • 下载

muduo 6 网络库学习之BlockinngQueue<T>类、ThreadPool 类、Singleton类封装中的知识点

一、BlockinngQueue类、BoundedBlockingQueue类 生产者消费者问题,可以用信号量+互斥锁 或者 条件变量+互斥锁 来解决,还分为有界和无界缓冲区...

单例极致 singleton C++

  • 2015年06月26日 16:28
  • 66KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:singleton
举报原因:
原因补充:

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