C# 设计模式-单例模式(Singleton)
2016-01-27 12:23 孙启亮 阅读(3469) 评论(0) 编辑 收藏 举报所谓单例模式即所谓的一个类只能有一个实例,说白了,也就是类只能在内部实例一次,然后提供这一实例,外部无法对此类实例化。
单例模式的特点:
1、只能有一个实例;
2、只能自己创建自己的唯一实例;
3、必须给所有其他的对象提供这一实例。
单例模式的创建方法:
1、没有考虑多线程安全问题
public class Singleton { private static Singleton _instance = null; private Singleton(){} public static Singleton CreateInstance() { if(_instance == null) { _instance = new Singleton(); } return _instance; } }
2、考虑多线程安全
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; } }
3、C#,自己主动创建实例
public class Singleton { private Singleton(){} public static readonly Singleton instance = new Singleton(); }
单例模式的应用:
1、MDI窗体使用单例模式可以防止窗体被实例化多次。