今天来简单来说一下单例模式:它要确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
比如我们登录一个系统的时候要记录一个员工的信息,在整个系统运行过程中可能要不段的访问这个员工的信息,
一般情况下我们会有两种做法,第一种建一个静态类,第二种就是今天我要说的键一个单例类
今天只说单例类,建单例类要有几个要求
1.私有的构造方法
2.指向自己实例的私有静态引用
3.以自己为实例为返回值的静态方法
单例模式实例化对象有两种方式
1.懒汉模式:调用取得实例方法的时候才去实例化对象
public
class
singleClassDemo
{
private
static
singleClassDemo singleC;
private
singleClassDemo()
{
}
private
static
singleClassDemo InitSingle()
{
if
(singleC ==
null
)
singleC =
new
singleClassDemo();
return
singleC;
}
}
|
2.饿汉模式:单例类被加载时候实例化对象
public
class
singleClassDemo
{
private
static
singleClassDemo singleC =
new
singleClassDemo();
private
singleClassDemo()
{
}
private
static
singleClassDemo InitSingle()
{
return
singleC;
}
}
|
做一个小例子:保存员工的名字和ID
public
class
Program
{
static
void
Main(
string
[] args)
{
singleClass s1 = singleClass.getSingleClass();
singleClass s2 = singleClass.getSingleClass();
//已经实例化过一次了不会再实例化了
Console.ReadLine();
}
}
public
class
singleClass
{
private
static
singleClass singleC =
new
singleClass();
private
singleClass()
// 在整个程序运行过程中只实例化一次
{
id =
"001"
;
name =
"ERP"
;
Console.WriteLine(
"singleClass run"
);
}
public
static
singleClass getSingleClass()
{
return
singleC;
}
private
static
string
id;
public
static
string
ID
{
get
{
return
id;
}
}
private
static
string
name;
public
static
string
Name
{
get
{
return
name;
}
}
}
|
c++代码
View Code
本文转自lpxxn博客园博客,原文链接:http://www.cnblogs.com/li-peng/archive/2013/01/18/2866629.html,如需转载请自行联系原作者