码迷,mamicode.com
首页 > 编程语言 > 详细

设计模式—单例模式(java)

时间:2017-06-30 00:04:48      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:.class   strong   构造   size   font   产生   iba   函数   nal   

一:懒汉式

1:  线程安全的双重锁检查机制

public class Singleton{

   private Singleton() {}    //  私有构造函数,保证不被外界实例化(不考虑反射)

   private static Singlecton single = null;

    public static Singlecton getInstance()

    {   if (singleton == null)

            {

                   synchronized (Singleton.class)

                    { if (singleton == null)

                                 singleton = new Singleton();

                    }  

             }

            return singleton

     }

}

 

2:静态内部类:线程安全,不用加锁

     public class Singleton {

        private static class LazyHolder{

                private static final Singleton INSTANCE = new Singleton ();

        }

       private Singlecton() {}

       public static final Singlecton getInstance()

                    {

                              return LazyHolder.INSTSNCE;

                     }

}

这里总结一下静态内部类:

                            A:静态内部类,只能访问外部类的静态成员。

                            B:静态内部类可以实例化

                            C:静态内部类随着类加载而产生(在类加载的时候,静态成员就生成了)

二:饿汉式:

       public class Singleton{

            private Singlecton() {}

             pribate static final Singlecton single = new Singleton();

             public static Singlecton getInstance()

             {

                     return single;

             }

}

 

设计模式—单例模式(java)

标签:.class   strong   构造   size   font   产生   iba   函数   nal   

原文地址:http://www.cnblogs.com/liufei1983/p/7096437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!