zoukankan      html  css  js  c++  java
  • 设计模式之一:单例模式SingleTon

     
        
    //单线程下的单例模式    
     
        
    class SingleTon
        {
            
    private static SingleTon _inst;
            
    private static SingleTon() { }
            
    public SingleTon Instance
            {
                
    get
                {
                    
    if (null != _inst)
                    {
                        _inst 
    = new SingleTon();
                    }
                    
    return _inst;
                }
            }
        }
     
        //多线程下的单例模式(饱汉式)
        class SingleTon
        {
            
    private static volatile SingleTon _inst;
            
    private static object lockhelper = new object();
            
    private SingleTon() { }
            
    public SingleTon Instance
            {
                
    get
                {
                    
    if (null != _inst)
                    {
                        
    lock (lockhelper)
                        {
                            
    // 此处使用双重判断防止多线程已经进入第一个判断然后等待解锁后创建实例
                            if (null != _inst)  
                            {
                                _inst 
    = new SingleTon();
                            }
                        }
                    }
                    
    return _inst;
                }
            }
        }
     
        //更简单的实现(饿汉式)
        //readonly 保证实例只能在声明时候或在静态构造器里初始化
        sealed class SingleTon
        {
            
    private SingleTon() { }
            
    public static readonly SingleTon Instance = new SingleTon();
        }
  • 相关阅读:
    iOS 从0到1搭建高可用App框架
    ios 判断用户是否开启权限---并跳转设置
    用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
    示例浅谈PHP与手机APP开发,即API接口开发
    iOS百度地图简单使用详解
    UICollectionViewCell「居左显示」
    IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息
    iOS开发融云即时通讯集成详细步骤
    iOS
    修改hosts文件
  • 原文地址:https://www.cnblogs.com/kakaliush/p/2095142.html
Copyright © 2011-2022 走看看