zoukankan      html  css  js  c++  java
  • 设计模式-----单例模式

    单例模式

    可以分为两种:饿汉式和懒汉式两种,饿汉是在系统启动的一开始就初始化好了实例,而懒汉式是在第一次访问的时候才初始化实例。

    饿汉模式

    package org.lltse.pattern.singleton;  
      
    /** 
     * @author lltse 
     * @date 2014-3-13 
     * @ask 饿汉模式 
     * @answer 
     */  
    public class HungerSingleton 
    {  
      
        /** 
         * 一开始就初始化好了实例 
         */  
        private static HungerSingleton instance = new HungerSingleton();  
      
        private HungerSingleton() 
        {  
        }  
      
        public static HungerSingleton getInstance() 
        {  
            return instance;  
        }  
    }  


    懒汉模式

    package org.lltse.pattern.singleton;
    /** 
     *  
     * @author lltse 
     * @date 2014-3-13上午11:41:22 
     * @ask 懒汉模式 
     * @answer 
     */  
    public class LazySingleton 
    {  
    
        private static LazySingleton instance = null;  
      
        private LazySingleton() 
        {  
        }  
      
        public static synchronized LazySingleton getInstance() 
        {  
            if(instance == null)
            {  
                instance = new LazySingleton();  
            }  
            return instance;  
        }  
    }  

     

    多线程环境下的懒汉单例模式

    package org.lltse.pattern.singleton;
    /** 
     * @author lltse 
     * @ask 既满足懒汉模式,又满足只有一个实例,即使多线程环境也是一个实例。
     */
    public class Singleton 
    {       
          
        static class SingletonHolder 
        {       
            static Singleton instance = new Singleton();       
        }       
          
        public static Singleton getInstance() 
        {       
          
            return SingletonHolder.instance;       
          
        }       
    }  
  • 相关阅读:
    封装好的AFN网络请求框架和MBProgress
    iOS定时器的使用
    iOS去除导航栏和tabbar的1px横线
    移动端加解密
    改变字符串中部分字符传的字体大小和颜色
    关于NSLog
    ipad开发:二维码扫描,摄像头旋转角度问题解决办法
    iOS-图文表并茂,手把手教你GCD
    计算富文本的高度
    jsp打印
  • 原文地址:https://www.cnblogs.com/lltse/p/3640610.html
Copyright © 2011-2022 走看看