单例模式学习
单例模式学习笔记
特点:
1、单例模式的类只有一个实例,并且对象只被创建一次
2、实例在类中创建
3、类中提供静态方法或者属性供外部调用类的实例
要点:
1、单例类不能实现IConeable接口和序列化
2、没有考虑到对象的销毁,在有垃圾回收的平台中可以不考虑
3、使用过程中要考虑到多线程处理
使用代码示例:
public partial class userControl : UserControl
{
private userControl()
{
InitializeComponent();
}
private static userControl instrance;
public static userControl Instrance
{
get
{
if (instrance == null)
{
instrance = new userControl();
}
return instrance;
}
}
}
使用过程中要考虑到多线程时候的使用;示例代码如下:
class Singleton2
{
/// <summary>
/// 私有构造函数
/// </summary>
private Singleton2() { }
static object lockHelper = new object();
/// <summary>
/// 静态字段 属性
/// </summary>
private static Singleton2 instance;
public static Singleton2 Instance
{
get
{
if (instance == null)
{
lock(lockHelper)
{
if (instance == null)
{
instance = new Singleton2();
}
}
}
return instance;
}
}
}