单例模式Singleton
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11399557.html
1.定义
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2. 单例模式的本质:控制实例数目
Singleton:负责创建Singleton类自己的唯一实例,并提供一个getInstance的方法,让外部来访问这个类的唯一实例。
3. 懒汉式实现,时间换空间,不加同步的懒汉式是线程不安全的。
1 package org.fool.dp.singleton; 2 3 public class Singleton { 4 private static Singleton singleton = null; 5 6 private Singleton() { 7 8 } 9 10 public static synchronized Singleton getInstance() { 11 if (singleton != null) { 12 singleton = new Singleton(); 13 } 14 15 return singleton; 16 } 17 }
4. 饿汉式实现,空间换时间,饿汉式是线程安全的。
1 package org.fool.dp.singleton; 2 3 public class Singleton { 4 private static Singleton singleton = new Singleton(); 5 6 private Singleton() { 7 8 } 9 10 public static Singleton getInstance() { 11 return singleton; 12 } 13 }
强者自救 圣者渡人