设计模式——单例模式
1、什么是单例模式
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例
2、单例模式的特点:
- 单例类只能有一个实例。
- 单例类必须自己创建自己的唯一实例。
- 单例类必须给所有其它对象提供这一实例。
3、单例模式分为懒汉式和饿汉式
3.1、懒汉式
public class LazySingleton { //比较懒,在类加载时,不创建实例,因此类加载速度快,但运行时获取对象的速度慢 private static LazySingleton _lazySingleton = null; private static object obj = new object(); private LazySingleton() { } /// <summary> /// 懒汉式 /// </summary> /// <returns></returns> public static LazySingleton GetInstance() { //有线程安全问题,需要加锁 lock (obj) { if (_lazySingleton == null) { _lazySingleton = new LazySingleton(); } } return _lazySingleton; } }
3.2、饿汉式
public class EagerSingleton { //在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快 private static EagerSingleton _eagerSingleton = new EagerSingleton(); private EagerSingleton() { } /// <summary> /// 饿汉式 /// </summary> /// <returns></returns> public static EagerSingleton GetInstance() { //静态,不用同步(类加载时已初始化,不会有多线程的问题) return _eagerSingleton; } }
QQ群:150417854