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;       
          
        }       
    }  
  • 相关阅读:
    自定义UILabel的对齐方式
    获取iOS系统版本 --- UIDevice的使用
    iOS 照片多选
    iOS 手势+触摸事件
    IOS消息推送
    设置tableViewCell的背景颜色
    IOS_修改TableView的删除按钮的文本
    UIScrollView控件实现轮播图
    判断设备是不是第一次进入应用
    英语口语
  • 原文地址:https://www.cnblogs.com/lltse/p/3640610.html
Copyright © 2011-2022 走看看