单例模式(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();
}
}希望这些信息对你有所帮助!
巅峰钜惠
云+社区沙龙online [国产数据库]
微服务平台TSF系列直播
“中小企业”在线学堂
云+社区沙龙online第5期[架构演进]
云+社区沙龙online [新技术实践]
Techo Day
云+社区沙龙online
“中小企业”在线学堂
“中小企业”在线学堂
Elastic Meetup Online 第三期
开箱吧腾讯云