设计模式-单例模式

单例模式(Singleton)的定义:

一个类只有一个实例,且该类能自行创建这个实例的一种模式。

单例模式的特点:

  1. 只有一个实例;
  2. 实例必须由单例类创建。

单例模式的优点:

  1. 保证内存中只有一个实例,避免重复创建造成的内存和性能开销

单例模式的缺点:

  1. 单例类没有接口,扩展性差;
  2. 单例模式不利于测试;
  3. 代码功能都在单例类中,开发时容易违背单一职责原则

代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/// <summary>
/// 饿汉模式
/// </summary>
class SingletonPattern1
{
private static SingletonPattern1 instance = new SingletonPattern1();

private SingletonPattern1() { }

public object Get()
{
return instance;
}
}

/// <summary>
/// 懒汉模式
/// </summary>
class SingletonPattern2
{
private static SingletonPattern2 instance;

private SingletonPattern2() { }

public object Get()
{
if (instance == default)
{
instance = new SingletonPattern2();
}

return instance;
}
}
分享到