zoukankan      html  css  js  c++  java
  • 单例模式(Singleton Pattern)

    Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。

    C#实现: 

    代码
        /// <summary>
        
    /// 简单实现
        
    /// </summary>
        public sealed class Singleton1
        {
            
    private static Singleton1 instance = null;
            Singleton1() { }
            
    public static Singleton1 Instance
            {
                
    get
                {
                    
    if (instance == null)
                    {
                        instance 
    = new Singleton1();
                    }
                    
    return instance;
                }
            }
        }

        
    /// <summary>
        
    /// 线程安全,双重锁定
        
    /// </summary>
        public sealed class Singleton2
        {
            
    private static Singleton2 instance = null;
            
    static readonly object padlock = new object();
            Singleton2() { }        
            
    public static Singleton2 Instance
            {
                get
                {
                    
    if (instance == null)
                    {
                        
    lock (padlock)
                        {
                            
    if (instance == null)
                            {
                                instance 
    = new Singleton();
                            }
                            
    return instance;
                        }
                    }
                }
            }
        }
  • 相关阅读:
    由 container 一词所想到的
    突然间,firebug中不显示用console.log打印的信息了
    学习计划表-快照-2017.2.16
    学习编程让我成功减肥!
    什么是编程?
    计算两个事件之间的时间差
    使用substring和split方法从字符串中抽取一组清单
    js中十进制数转换为16进制
    Definition of success-成功的定义
    如何让老式浏览器支持html5新增的语义元素
  • 原文地址:https://www.cnblogs.com/tqlin/p/1724799.html
Copyright © 2011-2022 走看看