一.概念
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
二.特点
1、单例类只能有一个实例。
2、单例类必须自己自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
三.实现方式
1.懒汉式
顾名思义,很懒。等到用时才会加载。
实现步骤
- 1 构造方法私有化
- 2 定义一个该类的静态变量
- 3 对外提供一个public返回实例的静态方法
- 如果该变量为null,生成该对象,如果不为不null,直接返回该
实现代码:
public class A {
//定义一个该类的静态变量
public static A a;
//构造方法私有化
private A(){
}
/**
* 对外提供一个public返回实例的静态方法
* *
* * 如果该变量为null,
* 生成该对象,如果不为不null,
* 直接返回该
* * 对象
*/
public static A getInstance(){
if(a == null){
a = new A();
return a;
}else{
return a;
}
}
}
2.饿汉式
空间换时间,加载时就创建对象,通俗点说就是一来就吃
实现步骤
- 1 构造方法私有化
- 2 定义一个该类的静态变量
- 3 对外提供一个public返回实例的静态方法
- 4.直接返回该对象
代码实现:
public class A2 {
//定义一个该类的静态变量
public static final A2 a = new A2();
//构造方法私有化
private A2(){
}
public static A2 getInstance(){
return a;
}
}