一、单例模式介绍
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
主要解决:一个全局使用的类频繁地创建与销毁。
关键代码:将构造函数私有化。
二、代码实现
1. 饿汉式-线程安全
public class Singleton {
private static final Singleton SINGLETON = new Singleton();
//限制产生多个对象
private Singleton() {
}
//暴露出实例对象
public static Singleton getSingleton() {
return SINGLETON;
}
//其他方法,推荐使用static修饰
public static void otherMethod() {
}
}
2. 懒汉式-线程不安全
public class Singleton2 {
private static Singleton2 singleton2 = null;
private Singleton2() {
}
//获取对象时实例化该对象
public static Singleton2 getSingleton2() {
if (singleton2 == null) {
singleton2 = new Singleton2();
}
return singleton2;
}
}
3. 懒汉式-线程安全
使用synchronized
关键字修饰,保证线程安全。
public class Singleton3 {
private static Singleton3 singleton3 = null;
private Singleton3() {
}
public static synchronized Singleton3 getSingleton3() {
if (singleton3 == null) {
singleton3 = new Singleton3();
}
return singleton3;
}
}