单例模式介绍:
单列模式就是保证系统中一个类只能有一个实例,并为客户程序提供一个获取该实例的全局访问点
应用场景:
不常变更但频繁使用的类。例如各种工具类,日志工具类,数据访问工具类等。
单列模式之饿汉式:
饿汉式:顾名思义,迫不及待。所以类一旦加载,单例初始化就已经完成
public class Singleton
{
private static Singleton singleton = new Singleton(); //先加载实例
private Singleton() //私有化构造函数,防止新建实例化
{
}
public static Singleton GetSingleton()
{
return singleton;
}
}
单列模式之懒汉式:用到才加载
public class LazySingleton
{
private static LazySingleton singleton = null;
private static readonly object SeqObj = new object();
private LazySingleton()
{
}//私有化构造函数
public static LazySingleton GetSingleton()
{
lock (SeqObj) //保证线程安全
{
if (singleton == null)
{
singleton = new LazySingleton();
}
return singleton;
}
}
}