Java 单例设计模式的两种实现
在看视频教程的时候看到的第一种设计模式,总体而言还是比较简单的,单例设计模式是限制实例化,只能有一个实例,就是所谓的单例。
实际上,只要做到三点就满足了单例设计模式:
- 构造函数私有化
- 类中创建一个实例对象
- 提供一个方法获取该对象
单例设计模式一共有两种实现,一种叫做饿汉式,一种叫做懒汉式。
先看第一种吧:
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)
还有个用枚举来实现的