单例模式(Singleton)是一种创建型模式,这种模式只是用一个单一的类,对于这个类,只能创建唯一一个对象,并且这个类提供一个接口对这个对象使用。
(1)对于这个类的构造函数私有化(private),只能本类内部才能使用构造函数,类外部不能创建本类的对象。
(2)本类内部创建本类的唯一一个对象。
(3)类提供一个静态函数,用来返回这个对象,供使用。
优点:
1、单例模式会阻止其他对象实例化自己的单例对象,确保所有对象访问的都是同一实例。
2、因为类控制了实例化过程,所以类可以灵活更改实例化过程。
实现方式:
(一)饿汉式:
public class SingletonTest {
// 定义一个私有的构造方法
private SingletonTest() { }
// 将自身的实例对象设置为一个属性,并加上Static和final修饰符
private static final SingletonTest instance = new SingletonTest();
// 静态方法返回该类的实例
public static SingletonTest getInstancei() {
return instance;
}
}
(二)懒汉式:
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}