`

写一个线程安全的单例模式

阅读更多

谢谢 http://blog.sina.com.cn/s/blog_75247c770100yxpb.html 的作者

 

深入浅出下

public class SingleA{

    private static class SingleHolder{

        public final static SingleA instance=new SingleA();

    }

     public static SingleA getInstance(){
   
         return SingleHolder.instance;
     }
}

1, getInstance()是一个静态工厂方法

   a,静态工厂方法可以有名字,名字随便取

   b,静态工厂方法不必在每次调用它们的时候创建一个新对象

   c,静态工厂方法可以返回原返回类型的任何子类型的对象

2,因为1.b所以第一次创建instance后,不会再创建新对象了。有效的提升了性能。

3,私有静态内部类也有效的保护了外部对instance的初始化。

 

其余的线程安全的单例模式请看谢谢中的链接文章

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics