设计模式之一 singleton模式
来源:互联网 发布:博得之门2 增强版 mac 编辑:程序博客网 时间:2024/05/22 16:52
Singleton模式的要点:
1、某个类只能有一个实例
2、必须自行创建这个实例
3、必须向整个系统提供这个实例
代码要点:
1、类的构造函数必须是private类型
2、类中的成员前必须有关键字static
单线程中singleton模式
public sealed class Singleton
{
static Singleton instance=null;
private Singleton()
{
}
public static Singleton Instance
{
get
{
if (instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
{
static Singleton instance=null;
private Singleton()
{
}
public static Singleton Instance
{
get
{
if (instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
多线程中的Singleton模式
1、构造函数可以传递参数
public sealed class Singleton
{
static Singleton instance=null;
static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
lock (padlock)
{
if (instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
}
{
static Singleton instance=null;
static readonly object padlock = new object();
Singleton()
{
}
public static Singleton Instance
{
get
{
lock (padlock)
{
if (instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
}
public sealed class Singleton
{
static readonly Singleton instance=new Singleton();
{
static readonly Singleton instance=new Singleton();
private Singleton()
{
}
}
{
}
}
上段代码中的分解代码为:
public sealed class Singleton
{
static readonly Singleton instance=null;
static Singleton()
{
instance = new Singleton();
}
private Singleton()
{
}
}
{
static readonly Singleton instance=null;
static Singleton()
{
instance = new Singleton();
}
private Singleton()
{
}
}
- 设计模式之一 singleton模式
- java设计模式学习系列之一:单例模式(Singleton)
- AS3设计模式之一:单例模式(Singleton Pattern)
- java设计模式学习系列之一:单例模式(Singleton)
- AS3设计模式之一:单例模式(Singleton Pattern)
- 设计模式系列之一:单例模式(Singleton Pattern)
- 设计模式-----Singleton模式
- 设计模式-Singleton模式
- 设计模式--Singleton模式
- 设计模式-------Singleton模式
- 设计模式--singleton模式
- 设计模式--Singleton模式
- 【设计模式】--SINGLETON模式
- C++设计模式:Singleton的模板实现之一
- python的Singleton模式之一
- 探究 Singleton 设计模式
- 探究Singleton设计模式
- 设计模式之singleton
- Apache与Tomcat安装配置手册
- 数组的初级运用
- 运用RUP 4+1视图方法进行软件架构设计
- 如何将真彩色图转换为各种灰度图
- 搭建Eclipse+MyEclipse开发环境
- 设计模式之一 singleton模式
- NETCF开发之比较两种Timer类
- 自动附加到计算机“EASON”上的进程“[2096] aspnet_wp.exe”失败。错误代码为 0x8013134b。
- 中国程序员的地域分布图
- XSL:转换从哪里开始?
- java applet PseudoScreen类源代码
- VBA 第一个程序
- Symbian资源文件浅析(来自:风生水起)
- 铭鸽网业务需求说明书