`
chenying998179
  • 浏览: 25800 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Thread-safe Singleton Pattern Example in C#

 
阅读更多

 

The Singleton pattern is used when you need one, and only one instance of your class. Sometimes you see this pattern used in cases where the construction of a class is expensive (like a file stream). It can be lazy loaded (at runtime instead of compiletime) and must be thread-safe. The class gets a public method or property named Instance, responsible for creating the Singleton. The constructor of the Singleton class is private, so no one can construct a new instance from the class by applying ‘new’.

using System;

namespace Singleton
{
    class Program
    {
        static void Main(string[] args)
        {
            // Lazy loaded object
            // Singleton gets created on first call
            Singleton.Instance.SomeProperty = 0;
            Singleton.Instance.SomeMethod();
        }
    }

    public class Singleton
    {
        // Private constructor to prevent 'new'
        private Singleton()
        {
        }

        // The instance read only property
        public static Singleton Instance
        {
            get
            {
                return Nested.instance;
            }
        }

        // Nested class with the actual Singleton object
        private class Nested
        {
            internal static readonly Singleton instance =
                new Singleton();

            static Nested()
            {
            }
        }

        // Additional methods and propeties
        public int SomeProperty { get; set; }
        public void SomeMethod() { }
    }
}
分享到:
评论

相关推荐

    java-thread-safe-singleton-pattern.rar_starvation

    private static final Singleton INSTANCE = new Singleton(); } private Singleton() {} public static Singleton getInstance() { return SingletonHolder.INSTANCE; } } ``` 上述代码是典型的双检锁/...

    Laravel开发-singleton-pattern

    在`singleton-pattern-master`这个压缩包中,可能包含了一个示例项目或者一个库,它演示了如何在Laravel中实现和使用单例模式。可能的目录结构包括源代码文件、配置文件、示例测试等,帮助开发者更好地理解和应用...

    C#设计模式-吕震宇

    C#设计模式(7)-Singleton Pattern C#设计模式(6)-Abstract Factory Pattern C#设计模式(5)-Factory Method Pattern C#设计模式(4)-Simple Factory Pattern C#设计模式(3) - 设计原则(2) C#设计模式(2...

    前端大厂最新面试题-Singleton Pattern.docx

    Singleton Pattern单例模式详解 Singleton Pattern单例模式是一种创建型设计模式,提供了一种创建对象的最佳方式。该模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建在应用程序运行...

    大话设计模式--Singleton(单例模式)

    在Java、C#等面向对象编程语言中,单例模式有着广泛的实践。 单例模式的实现通常有以下几种方法: 1. 饿汉式(静态常量): 这种方式在类加载时就完成了实例化,线程安全。代码如下: ```java public class ...

    singleton pattern

    singleton pattern 的定义 主要应用方法 优缺点 通过代码 具体分析解释

    Example-TypeScript-Singleton-Pattern:TypeScript 和单例模式

    以下是对这个"Example-TypeScript-Singleton-Pattern"项目的详细解析。 1. **TypeScript 基础知识**: TypeScript 是 JavaScript 的超集,提供了静态类型系统、接口、类、枚举等特性,增强了代码的可维护性和...

    PyPI 官网下载 | dask-actor-singleton-1.1.0.tar.gz

    **PyPI 官网下载 | dask-actor-singleton-1.1.0.tar.gz** 在Python的世界里,PyPI(Python Package Index)是官方的软件仓库,它为开发者提供了发布和分享Python软件包的平台。`dask-actor-singleton-1.1.0.tar.gz`...

    perl-Class-Singleton-1.4-6.el6.noarch.rpm

    perl-Class-Singleton-1.4-6.el6.noarch.rpm perl-Class-Singleton-1.4-6.el6.noarch.rpm

    Singleton Pattern 源码

    单例模式(Singleton Pattern)是软件设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下非常有用,比如控制资源的唯一性、全局配置对象或者缓存服务等。本篇文章将深入探讨...

    Singleton pattern单例模式应用

    ### Singleton Pattern 单例模式应用详解 #### 一、单例模式概述 单例模式(Singleton Pattern)是一种常用的软件设计模式,在系统中确保某个类只有一个实例,并提供一个全局访问点。这种模式通常用于控制资源的...

    Design Pattern Examples in C#.zip

    本压缩包“Design Pattern Examples in C#.zip”包含了多种设计模式的实例,旨在帮助开发者更好地理解和运用这些模式。 1. **单例模式** (Singleton): 这个模式确保一个类只有一个实例,并提供全局访问点。在C#中,...

    akka-cluster-singleton-example:Akka Cluster - 单例使用示例

    在 Akka 中,"Cluster Singleton" 是一种设计模式,用于确保集群中的某个特定角色仅有一个实例存在。这个特性对于实现全局状态、领导选举或者分布式协调等场景非常有用。下面我们将深入探讨 Akka Cluster 和 Cluster...

    MyDemo-qt-singleton.7z

    本项目"MyDemo-qt-singleton"着重展示了如何在QT环境中实现单例设计模式。单例模式是一种保证一个类只有一个实例并提供一个全局访问点的设计模式,常用于控制共享资源的访问,如数据库连接、配置文件或线程池。 在...

    Design Pattern In c#

    《Design Pattern In C#》是一本深入探讨设计模式的书籍,专为使用C#编程语言的开发者准备。设计模式是软件工程中经过实践验证的、解决常见问题的有效方法,是经验丰富的开发者的智慧结晶。这本书以英文撰写,以其...

    SSP-simple-singleton-pattern:简单的单例模式

    简单的单例模式团队丹尼斯·卡拉赞斯莱昂纳多·派瓦鲁道夫·迪亚斯图利奥·菲利普 它是什么? Development > Organization > Good practices > Standards... SSP 是一种模块化和组织项目的简单方法。...

    单例模式 Singleton Pattern

    ### 单例模式 Singleton Pattern #### 概述 单例模式是一种常见的设计模式,属于创建型模式之一。这种模式的核心在于确保某个类只有一个实例存在,并且提供一个全局访问点来获取该实例。单例模式在Java开发中尤其...

    Android SingletonPatternDemo

    Java据说有23种设计模式,Android的设计模式肯定是由Java来引申出来的。这里不讨论有多少人全会,有多少种设计模式会使用到,我们来讲下其中用得最多的也就是人人都知道的...这里是一个简单的SingletonPatternDemo。

    design-pattern-java.pdf

    工厂三兄弟之抽象工厂模式(二) 工厂三兄弟之抽象工厂模式(三) 工厂三兄弟之抽象工厂模式(四) 工厂三兄弟之抽象工厂模式(五) 单例模式-Singleton Pattern 确保对象的唯一性——单例模式 (一) 确保对象的...

    c++-设计模式之单例模式(Singleton Pattern)

    单例模式(Singleton Pattern)是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于需要全局共享资源的场景,比如配置管理、日志记录等。 单例模式的组成 私有构造函数:防止外部...

Global site tag (gtag.js) - Google Analytics