singleton class

By | 08月25日
Advertisement

public class Singleton
{
// Private static object can access only inside the Emp class.
private static Singleton instance;

// Private empty constructor to restrict end use to deny creating the object.
private Singleton()
{
}

// A public property to access outside of the class to create an object.
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}

}

public sealed class MultiThreadSingleton
{
private static volatile MultiThreadSingleton instance;
private static object syncRoot = new Object();

private MultiThreadSingleton()
{
}

public static MultiThreadSingleton Instance
{
get
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
{
instance = new MultiThreadSingleton();
}
}
}
return instance;
}
}

}

//static only

public sealed class SealedSingleton
{
private static readonly SealedSingleton instance = new SealedSingleton();

private SealedSingleton()
{
}

public static SealedSingleton Instance
{
get
{
return instance;
}
}
}

http://msdn.microsoft.com/zh-cn/library/ff650316.aspx

Similar Posts:

  • java多线程与单例模式(Singleton)不得不说的故事

    转发自:http://blog.csdn.net/ligang7560/article/details/50890282 单例模式的多种实现方式 我们都知道单例模式有几种常用的写法: - 饿汉模式 - 懒汉模式 - 双重校验锁 - 静态内部类 - 静态代码块 我们来看一下这几种模式在多线程的场景中,能否保持单例 1.饿汉模式 public class HungrySingleton { //立即加载模式 private static HungrySingleton hungrySingleton

  • 大熊君说说JS与设计模式之------单例模式Singleton()

    一,总体概要 1,笔者浅谈 顾名思义单例模式并不难理解,是产生一个类的唯一实例,在我们实际开发中也会使用到这种模式,它属于创建模式的一种,基于JS语言本身的语法特征, 对象直接量"{}",也可以作为单例模式的一种表现形式,如下代码参考 1 function Foo(){ 2 this.bar = "Hello Singleton !" ; 3 } ; 4 var Singleton = { 5 instance : null , 6 getInstance : fu

  • 小菜学习设计模式(二)—单例(Singleton)模式

    前言 设计模式目录: 小菜学习设计模式(一)-模板方法(Template)模式 小菜学习设计模式(二)-单例(Singleton)模式 小菜学习设计模式(三)-工厂方法(Factory Method)模式 小菜学习设计模式(四)-原型(Prototype)模式 小菜学习设计模式(五)-控制反转(Ioc) 持续更新中... 本篇目录: 简单实现 线程安全 后记 单例模式(Singleton)可以说是最简单的模式,对.net来说,因为不需要考虑到垃圾回收机制,实现起来很简单,但是对于没有提供内存管理

  • 单例模式(Singleton)理解

    一.为什么要用单例模式 当一个类需要用来管理共享资源的时候,我们就只需要一个对象,比方说:线程池.缓存.日志对象等等.如果说制造出了多个实例,就会导致许多问题的产生,例如:程序异常,资源使用过量,结果不一致等等. 举个简单的例子就是,当一个web应用中连接数据库的Connection对象,如果每次访问都new一个出来,那么当有一万个甚至更多的访问在短时间内并发,这将导致服务器资源的大量开销,因为这些对象不回被垃圾回收立刻收回.但如果服务器对此只实例化一次,每次Connection对象被使用后放回

  • 设计模式之单例模式(Singleton)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.FactoryMethod(工厂方法模式):2.Abstract Factory(抽象工厂模式):3.Singleton(单例模式):4.Builder(建造者模式):5.Prototype(原型模式). 结构型模式包括:6.Bridge(桥接模式):7.Adapter(适配器模式):8.Decorator(装饰模式):9.Composite(组合模式):10.Flyweight(享元模式):11.Fac

  • iOS 21种设计模式之单例(Singleton)

    原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=list 我的stackoverflow 感谢 感谢<Pro Objective-C Design Pattern for iOS>一书,这个博客系列由很多灵感源自次书.同时,也感谢Wiki以及一些博客博主.每篇文章最后,都会列出参考链接. 这个系列的文章 工厂 抽象工厂 单例 原型 生成器 适配器 桥接 中介者 观察者 组合 迭代器 访问者 装饰 责任链 模版 策略 命令 享元 代理

  • 单例模式(Singleton)的6种实现

    1.1.1 摘要 在我们日常的工作中经常需要在应用程序中保持一个唯一的实例,如:IO处理,数据库操作等,由于这些对象都要占用重要的系统资源,所以我们必须限制这些实例的创建或始终使用一个公用的实例,这就是我们今天要介绍的--单例模式(Singleton). 使用频率 高 单件模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点. 1.1.2 正文 图1单例模式(Singleton)结构图 单例模式(Singleton)是几个创建模式中最对立的一个,它的主要特点不是根据用

  • Singleton 模式

    简述 在JavaScript中,Singleton充当共享资源命名空间,从全局命名空间中隔离出代码实现,从而 为函数提供单一访问点. 如下实现一个Singleton var mySingleton=(function(){ //实例保持了Singleton的引用 var instance; function init(){ //Singleton //私有方法和变量 function privateMethod(){ console.log("I am a private"); } v

  • 深一层看Singleton

    转载自:Todd Wei http://www.cnblogs.com/weidagang2046/archive/2009/10/31/1593473.html Singleton模式通常被认为是比较容易理解和运用的设计模式.目前,网上已经有相当多的资料讲解Singleton的基础知识,本文试图避免重复性的介绍,而是尝试从不同的角度更深入地探讨Singleton. "保证对象有唯一的实例,并且提供一个全局访问点"是Singleton模式比较常见的描述.不知您是否意识到,这个定义本身就

  • Ext.Function singleton

    Ext.Function singleton A collection of useful static methods to deal with function callbacks(处理函数回调的有用静态方法的集合) -------------------------------------------------------------------------------- alias( Object/Function object, String methodName ) : Funct

  • 【单例模式】Singleton pattern

    前言:有很多时候,在一个生命周期中我们只要一个对象就可以了,比如:线程池,缓存,对话框,日志,显卡驱动等等.如果造出多个实例,就会导致许多问题产生,例如:程序的行为异常.资源使用过量,或者说不一致的结果. public class Singleton { private static Singleton instance; private Object _synchronizedObj = new Object(); //private constructor private Singleton

Tags: