`
kang
  • 浏览: 464587 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

单例模式中的饿汉式和懒汉式

阅读更多

例模式中的 饿汉 式和 懒汉

 

http://topic.csdn.net/u/20071111/14/d9cbf766-765a-4315-a49f-be7888d1308b.html

 

表于 2007-11-11 14:18:56 楼主

  例模式中, 饿汉 式和 懒汉 式有什 ?各适合用在哪里? 么说 推荐用 饿汉 模式

 

表于 2007-11-11 15:29:471  得分 :0  
    饿汉 :
        public class Singleton{
            private static Singleton singleton = new Singleton ();
            private Singleton (){}
            public Singleton getInstance(){return singletion;}
      }
   懒汉 :
      public class Singleton{
            private static Singleton singleton = null;

      
 
private Singleton (){}       

      public static synchronized synchronized getInstance(){ 
            if(singleton==null){ 
                singleton = new Singleton(); 
            } 
            return singleton; 
         } 
   } 

:
饿汉 式是 线 程安全的 , 类创 建的同 就已 经创 建好一个静 象供系 使用 , 以后不在改
懒汉 式如果在 不加上 synchronized 对对 象的 访问 不是 线 程安全的
 
推荐使用第一

 

 

表于 2007-11-11 18:13:395   得分 :0

1 楼基本上已 回答了 问题 . 但是 懒汉 式没有加私有的构造函数
实现 方式来 最大的区 就是 懒汉 式是延 , 在需要的 候才 , 饿汉 式在虚 机启 候就会 ,
使用的 合根据具体 境和个人 习惯 .

 

表于 2007-11-12 09:40:207   得分 :0

饿汉 式无需 注多 线 问题 、写法 简单 明了、能用 用。但是它是加 载类时创 例(上面有个朋友写 了)、所以如果是一个工厂模式、 存了很多 例、那 就得考 效率 问题 ,因 为这 一加 载则 把所有 例不管用不用一 块创 建。

懒汉 式的 点是延 、缺点是 应该 用同 (想改 话现 是不可能,比如 double-check )、其 也可以不用同 、看你的需求了,多 建一两个无引用的 废对 象其 也没什 大不了

 

 

 

分享到:
评论
1 楼 nswish 2011-05-31  
谢谢,受教了! 

相关推荐

Global site tag (gtag.js) - Google Analytics