在实际的项目开发中,常会用到配置文件,可在读取配置文件后将读取的内容放在数据对象中,但在使用时通过new的方式产生对象,在系统中会存在多个相同的配置文件,当配置文件过多时会极大的影响到系统的性能。我们是否能使得配置文件的实例对象在系统运行期间只有一个,以避免了上述问题的发生,这就是我们今天说的单例模式。
一、单例模式实现
单例模式也称单件、单体等,单例模式保证一个类只有一个实例,并提供一个全局访问点。一个类能够创建多个实例的根源是类的构造方法是公开的,因此,要控制类的创建,首先就要收回创建类实例的权限,同时提供可供外部访问类实例的方法。
单例模式的结构图如下所示:
单例模式的实现方式分为两种:懒汉式和饿汉式,他们主要是在创建实例对象的处理方式不同。下面分别对两种方式进行实现:
- 饿汉式单例
public class Student {
// 成员变量初始化本身对象
private static Student student = new Student();
// 1:构造私有,内部控制实例数
private Student() {
}
// 2:对外提供公共方法获取对象
public static Student getInstance() {
return student;
}
}
- 懒汉式单例
public class Student {
private Student() {
}
//此处使用一个内部类来维护单例 JVM在类加载的时候,是互斥的,所以可以由此保证线程安全问题
private static