少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            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)內(nèi)部類:
          單例模式創(chuàng)新!google的ioc作者寫的。只有在調(diào)用的時(shí)候才會初始化!而且線程安全   
          超級牛!

          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類型的(這個(gè)是針對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 閱讀(523) 評論(0)  編輯  收藏 所屬分類: PatternDesigns
          主站蜘蛛池模板: 永昌县| 凌云县| 库尔勒市| 彰化县| 体育| 扶沟县| 密云县| 安徽省| 宜兰县| 宁波市| 调兵山市| 潜山县| 泉州市| 隆昌县| 蓬安县| 北海市| 武穴市| 竹山县| 南昌市| 西城区| 南和县| 噶尔县| 长顺县| 通州市| 双城市| 牟定县| 夏津县| 蚌埠市| 宁武县| 四川省| 祁东县| 蒲城县| 奉化市| 三亚市| 丹东市| 南安市| 孝昌县| 内乡县| 双流县| 株洲市| 赤水市|