单例模式是一种创建型设计模式,其目的是确保一个类只有一个实例,并提供一个全局访问点。
饿汉式单例模式:
public class SingletonEager {
private static final SingletonEager instance = new SingletonEager();
private SingletonEager() {
// 私有构造方法,防止外部实例化
}
public static SingletonEager getInstance() {
return instance;
}
}
懒汉式单例模式:
public class SingletonLazy {
private static SingletonLazy instance;
private SingletonLazy() {
// 私有构造方法,防止外部实例化
}
public static synchronized SingletonLazy getInstance() {
if (instance == null) {
instance = new SingletonLazy();
}
return instance;
}
}
区别:
getInstance
方法上添加 synchronized
关键字来解决线程安全问题,但会影响性能。单例模式的应用场景包括:
举例说明:
public class DatabaseConnectionPool {
private static final DatabaseConnectionPool instance = new DatabaseConnectionPool();
private DatabaseConnectionPool() {
// 私有构造方法,防止外部实例化
}
public static DatabaseConnectionPool getInstance() {
return instance;
}
// 其他数据库连接池相关方法...
}