1. 单例模式的实现方式1:
package com.object;
public class Singleton1 {
private static final Singleton1 INSTANCE = new Singleton1();
private Singleton1() { }
public static Singleton1 getInstance() {
return INSTANCE;
}
}
2. 单例模式的实现方式2:
package com.object;
public class Singleton2 {
private static Singleton2 instance = null;
private Singleton2() { }
public static synchronized Singleton2 getInstance() {
if (instance == null) {
instance = new Singleton2();
}
return instance;
}
}
3. 单例模式的实现方式3:
package com.object;
public class Singleton3 {
private static Singleton3 instance = null;
private Singleton3() { }
public static Singleton3 getInstance() {
if (instance == null) {
synchronized(Singleton3.class) {
if (instance == null) {
instance = new Singleton3();
}
}
}
return instance;
}
}
4. 单例模式的实现方式4:
package com.object;
public class Singleton4 {
private static class SingletonHolder {
private static final Singleton4 INSTANCE = new Singleton4();
}
private Singleton4() { }
public static Singleton4 getInstance() {
return SingletonHolder.INSTANCE;
}
}