少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          1、餓漢模式:

          package com.abin.info.service;

          public class Singleton {
           private static Singleton singleton=new Singleton();
           
           private Singleton(){
            
           }
           
           public static Singleton getInstance(){
            return singleton;
           }

          }


          private static LazyMode lazyMode=null;
          public static synchronized LazyMode getInstance(){
          if(null==lazyMode){
          lazyMode=new LazyMode();
          }
          return lazyMode;


          2、懶漢模式:

          package com.abin.inter.she;

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

          }

          懶漢模式的線程安全版本:

          package com.abin.lee.template.pattern;
          public class LazyMode {
          private static LazyMode lazyMode=null;
          public static synchronized LazyMode getInstance(){
          if(null==lazyMode){
          lazyMode=new LazyMode();
          }
          return lazyMode;
          }



          3、雙重檢測:

           

          package com.east.abin.impl;

          public class Singleton {
           private static Singleton instance=null;
           private Singleton(){
            
           }
           
           public static Singleton getInstance(){
            if(null==instance){
             synchronized(Singleton.class){
              if(null==instance){
               instance=new Singleton();
               return instance;
              }
             }
            }
            return instance;
           }

          }

           







          4.靜態(tài)內部類:
          單例模式創(chuàng)新!google的ioc作者寫的。只有在調用的時候才會初始化!而且線程安全   
          超級牛!

          package com.east.abin.bin;

          public class Singleton {
           private Singleton(){
            
           }
           
           private static class SingletonHelp{
            private static Singleton instance=new Singleton();
           }
           
           public static Singleton getInstance(){
            return SingletonHelp.instance;
           }
           

          }




          5、enum類型的(這個是針對jdk 1.5以及1.5版本以上的)

          package com.abin.peng.service;

          public enum Singleton {
           Singleton;
           private Singleton(){}
           public static Singleton getInstance(){
            return Singleton;
           }
          }

           

          posted on 2012-03-15 18:21 abin 閱讀(520) 評論(0)  編輯  收藏 所屬分類: PatternDesigns
          主站蜘蛛池模板: 望奎县| 云林县| 邳州市| 上蔡县| 嵊泗县| 施秉县| 固安县| 榕江县| 景宁| 平原县| 吴旗县| 湄潭县| 永寿县| 西充县| 洛阳市| 石城县| 阿尔山市| 万全县| 卢龙县| 浑源县| 兰州市| 丹江口市| 萝北县| 仁布县| 抚顺市| 峨山| 涟源市| 徐州市| 临高县| 石家庄市| 叶城县| 贵南县| 绥棱县| 仙桃市| 麻江县| 巴塘县| 古浪县| 紫云| 云林县| 涿州市| 南和县|