zoukankan      html  css  js  c++  java
  • C#设计模式——单例

           单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。

           显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
    从具体实现角度来说,就是以下三点:一是单例模式的类只提供私有的构造函数,二是类定义中含有一个该类的静态私有对象,三是该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。
    C#实现单例类的方法有很多,具体可见:http://csharpindepth.com/Articles/General/Singleton.aspx#unsafe
    本文介绍两种实现方式:
    方法一(推荐):
        class SingleOne
        {
    
            static SingleOne m_Instance = null;
            static SingleOne()
            {
                m_Instance = new SingleOne();
            }
            private SingleOne()
            {
                // code: 其它需要构造函数来处理代码
            }
    
            public static SingleOne Instance
            {
                get { return m_Instance; }
            }
        }

    方法二:

        public class SingleOne
        {
            static SingleOne m_Instance = null;
            private static readonly object obj4Lock = new object();
    
            private SingleOne()
            {
                // code: 其它需要构造函数来处理代码
            }
    
            public static SingleOne Instance
            {
                get
                {
                    if (m_Instance == null)
                    {
                        lock (obj4Lock)
                        {
                            if (m_Instance == null)
                            {
                                m_Instance = new SingleOne();
                            }
                        }
                    }
    
                    return m_Instance;
                }
            }
        }
  • 相关阅读:
    Buffer -nodejs
    Tip提示框另类写法
    SASS入门
    界面设计必须要权衡的三个要素
    如何快速出稿一个优秀APP的构图
    如何画好一套线性图标
    Ui培训之如何设计极简三色图标
    移动APP设计国外资源总汇
    移动界面UI颜色设计
    APP专业视觉设计基础标准要求
  • 原文地址:https://www.cnblogs.com/CUIT-DX037/p/7233104.html
Copyright © 2011-2022 走看看