public class TestSingleton {
public static void main(String[] args) {
//设计模式 编程套路
//类 只有一个对象
//ClassA a1 = new ClassA();
//ClassA a2 = new ClassA();
ClassA a1 = ClassA.newInstance();
ClassA a2 = ClassA.newInstance();
}
}
//饿汉式
class ClassA{
private static final ClassA instance = new ClassA();
public static ClassA newInstance(){
return instance;
}
private ClassA(){}
}
//懒汉式
class ClassB{
private static ClassB instance = null;
public static synchronized ClassB newInstance(){
if (instance == null) instance = new ClassB();
return instance;
}
private ClassB(){}
}
//静态内部类
class ClassC{
private static class Holder{
static ClassC instance = new ClassC();
}
public static ClassC newInstance(){
return Holder.instance;
}
private ClassC(){}
}
07-23
07-23
07-23
07-23
07-23