CodeSky 代码之空

随手记录自己的学习过程

Java 单例设计模式的两种实现

2015-08-11 16:17分类: Java评论: 1

在看视频教程的时候看到的第一种设计模式,总体而言还是比较简单的,单例设计模式是限制实例化,只能有一个实例,就是所谓的单例。

实际上,只要做到三点就满足了单例设计模式:

  1. 构造函数私有化
  2. 类中创建一个实例对象
  3. 提供一个方法获取该对象

单例设计模式一共有两种实现,一种叫做饿汉式,一种叫做懒汉式。

先看第一种吧:

1 class Single
2 {
3 	private static Single s = new Single();
4 	private Single() {}
5
6 	public static Single getInstance()
7 	{
8 		return s;
9 	}
10 }
11

这种在Single类在内存中的时候就直接初始化完毕了。

而懒汉式则是在调用中初始化:

1class Single
2 {
3 	private static Single s = null;
4 	private Single() {}
5
6 	public static Single getInstance()
7 	{
8 		if (s == null)
9 			s = new Single();
10
11 		return s;
12 	}
13 }
14

但是懒汉式在多线程时会遇到问题,所以还是饿汉式更“方便”。

评论 (1)

路人2018年4月1日 21:27

还有个用枚举来实现的