单例模式(Singleton Pattern)是一种设计模式,确保一个类只有一个实例,并提供一个全局访问点来访问该实例。单例模式通常用于控制资源的共享,例如数据库连接池、日志记录器、配置管理等。
以下是一个懒汉式单例模式的示例代码:
public class Singleton {
private static Singleton instance;
private Singleton() {
// 私有构造函数,防止外部实例化
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}public class Singleton {
private static volatile Singleton instance;
private Singleton() {
// 私有构造函数,防止外部实例化
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}public enum Singleton {
INSTANCE;
public void doSomething() {
// 业务逻辑
}
}synchronized关键字或双重检查锁定来确保线程安全。Serializable接口,并重写readResolve方法来防止序列化和反序列化时创建新的实例。public class Singleton implements Serializable {
private static final long serialVersionUID = 1L;
private Singleton() {
// 私有构造函数,防止外部实例化
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
protected Object readResolve() {
return getInstance();
}
}希望这些信息对你有所帮助!