黑马程序员 关于单例模式、懒汉式、饿汉式

———- android培训java培训、java学习型技术博客、期待与您交流! ————

1 什么叫单例

  写一个类,这个类只有一个对象!不能有第二个对象出现。

 

2 如果让外界无法创建对象,并且类内部自己可以创建

写一个private构造器

在类内自己创建一个对象! — private

 

3 如何让外界可以获取到这个唯一对象

写一个方法,然后让外界通过这个方法来获取对象。

这个方法是实例方法,还是静态方法/p>

静态的!因为外界无法获取我们的对象,实例方法只能通过对象才能调用。

而静态无需对象。

 

4 什么叫饿汉式

public class Single {

         private static Single instance = new Single();//创建了本类的唯一实例

        

         /*

          *写一个private构造器,外界不能使用它

          *编译器不会再为我们生成默认构造器

          */

         private Single() {

         }

        

         public static Single getInstance() {

                   return instance;

         }

}

 

在显示初始化中完成创建,这个动作在类被加载时已经完成。

好处:比较安全!

缺点:无论有没有人使用这个类的实例,都会直接先创建出来。时间长!
使用饿汉式

 

5 什么叫懒汉式

public class Single {

         private static Single instance;

 

         private Single() {

         }

        

         public static Single getInstance() {

                   if(instance == null) {

                            instance = new Single();

                   }

                   return instance;

         }

}

 

在方法内进行判断,如果还没有实例化,在方法内部去实例化它。

好处:可以延迟创建!可以在没有使用本类时,不去创建!

缺点:在多线程环境中,可能会出现多实例的可能!

不使用懒汉式!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年11月13日
下一篇 2012年11月15日

相关推荐