下面是Singleton模式的三种实现:
饿汉式:
package com.flyingh.test;
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
super();
// TODO Auto-generated constructor stub
}
public static Singleton getInstance() {
return singleton;
}
}
懒汉式:
1):
package com.flyingh.test21;
public class Singleton {
private static Singleton singleton;
private Singleton() {
}
public synchronized static Singleton getInstance() {
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
}
2)(JDK1.5+):
package com.flyingh.test22;
public class Singleton {
private volatile static Singleton singleton;
private Singleton() {
}
public static Singleton getInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
}
枚举:
package com.flyingh.test3;
public enum Singleton {
singleton;
}