以前java的学习中对于单例模式是再熟悉不过了,对于单例模式的实现方法也是再熟悉不过了。通常设计模式中交给我们懒汉式还有饿汉式两种实现方法,代码如下:
public class Singleton {
private Singleton(){}
private static Singleton singleton = null ;
public static Singleton getInstance(){
if(singleton==null){
return new Singleton();
}
return singleton;
}
}
public class Singleton {
private Singleton(){}
private static Singleton singleton = new Singleton() ;
public static Singleton getInstance(){
return singleton;
}
}
今天在看公司代码的时候又发现一种比较灵巧的实现方式,实现方式是通过内部类实现的,代码如下:
public class Singleton {
private Singleton(){}
private static class Inner{
static Singleton singleton = new Singleton();
}
public static Singleton getInstance(){
return Inner.singleton;
}
}
public class Test{
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();//这样同样可以获取到singleton的单例
}
}