07.java设计模式之单例模式
单例就是为了保证每次访问对象的时候都是同一个对象。
1.饿汉式
/** * 饿汉式 */ public class Singletone { private static final Singletone singletone = new Singletone(); private Singletone(){ } public static Singletone getSingletone() { return singletone; } }
2.懒汉式
public class Singletone { private static Singletone singletone = null; private Singletone(){ } public static Singletone getSingletone() { if (singletone == null){ singletone = new Singletone(); } return singletone; } }
3.双重加锁式 这个有空再仔细说为啥要双重加锁
public class Singletone { private static Singletone singletone = null; private Singletone(){ } public static Singletone getSingletone() { if (singletone == null){ synchronized (Singletone.class){ //加锁 if (singletone == null){ singletone = new Singletone(); } } } return singletone; } }