模式介绍
模式的定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
通用代码
1)饿汉式单例
/**
* 饿汉式单例
*/
public class Singleton {
private static final Singleton instance = new Singleton();
// 限制产生多个对象,为了防止在外部对其实例化,将其构造函数设计为私有 private
private Singleton() {
//
}
// 通过该方法获得实例对象
public static Singleton getInstance() {
return instance;
}
// 类中的其他方法
public void doSomething() {
//
}
}
2)懒汉式单例
/**
* 懒汉式单例
*/
public class Singleton {
private static Singleton instance = null;
// 限制产生多个对象,为了防止在外部对其实例化,将其构造函数设计为私有 private
private Singleton() {
//
}
// 通过该方法获得实例对象,加 synchronized 关键字,解决线程不安全的问题
synchronized public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
// 类中的其他方法
public void doSomething() {
//
}
}