单例模式有许多写法,可以结合自己理解选择一个自己喜欢的
引入一个其他人的博客关于单例的不错总结;
单例
单例模式 : 一个类有且只有一个实例(对象)
1st.私有化构造方法 防止类体之外随意new对象
2nd.本类当中创建一个当前类型的对象(可以new 也可以在调用的时候new)
为了防止无限套蛋的问题 应当使用static修饰(static修饰的属性全局只有一份),为了防止恶意的修改 应当private修饰
3rd.提供一个公共的getter方法
这个方法应当是静态的 必须是不需要对象就能调用
重点
//双重检查的单例 推荐使用的单例
public class Singleton {
private static volatile Singleton singleton;
private Singleton() {}
public static Singleton getInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
XHH