1.单例设计模式的作用:
单例模式是一种常用的软件设计模式,通过单例模式可以保证系统中,应用该模式的这个类只有一个实例 ***(一个类一个对象实例)***,否则按照正常类来可以创建多个对象.
2.单例设计模式实现步骤:
- 将构造方法私有化,使其不能在类的外部通过new关键字实例化该对象.
- 在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型的成员变量
- 定义一个静态方法返回这个唯一对象
根据实例化对象的时机单例设计模式分为以下两种:
- 饿汉单例设计模式:在使用类的时候已经将对象创建完毕,不管以后会不会使用该实例对象.
public class Singleton {
// 1.将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。
private Singleton() {}
// 2.在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型的成员变量。
private static final Singleton instance = new Singleton();
// 3.定义一个静态方法返回这个唯一对象。
public static Singleton getInstance() {
return instance;
}
}
- 懒汉单例设计模式:调用getInstance()方法时实例才被创建,先不着急实列化出对象,等需要时才实列化对象.
public class Singleton {
// 2.在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型的成员变量。
private static Singleton instance;
// 1.将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。
private Singleton() {}
// 3.定义一个静态方法返回这个唯一对象。要用的时候才例化出对象
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
}