所谓单例模式即所谓的一个类只能有一个实例,说白了,也就是类只能在内部实例一次,而后提供这一实例,外部没法对此类实例化。安全
单例模式的特色:多线程
一、只能有一个实例;spa
二、只能本身建立本身的惟一实例;线程
三、必须给全部其余的对象提供这一实例。code
单例模式的建立方法:对象
一、没有考虑多线程安全问题blog
public class Singleton { private static Singleton _instance = null; private Singleton(){} public static Singleton CreateInstance() { if(_instance == null) { _instance = new Singleton(); } return _instance; } }
二、考虑多线程安全class
public class Singleton { private volatile static Singleton _instance = null; private static readonly object _lockrobject = new object(); private Singleton(){} public static Singleton CreateInstance() { if(_instance == null) { lock(_lockrobject ) { if(_instance == null) _instance = new Singleton(); } } return _instance; } }
三、C#,本身主动建立实例object
public class Singleton { private Singleton(){} public static readonly Singleton instance = new Singleton(); }
单例模式的应用:方法
一、MDI窗体使用单例模式能够防止窗体被实例化屡次。