单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。
结构图
例如以下几种情况:
1. 线程池:在多线程环境下,为了提高效率,可以使用单例模式来创建全局唯一的线程池实例。
2. 配置文件管理器:在一个应用程序中,通常会有一个或多个配置文件,使用单例模式可以确保在整个应用程序中只有一个配置文件管理器。
3. 数据库连接池:在需要频繁访问数据库的应用中,可以使用单例模式来创建全局唯一的数据库连接池实例,避免频繁创建和销毁数据库连接。
下面是用单例模式来创建全局唯一的数据库连接池实例。以下是一个示例:
public class DBConnectionPool {
// 创建私有静态实例变量
private static DBConnectionPool instance;
// 创建私有构造函数,防止外部实例化
private DBConnectionPool() {
// 初始化数据库连接池
}
// 创建一个公共的静态方法来获取实例
public static synchronized DBConnectionPool getInstance() {
if (instance == null) {
instance = new DBConnectionPool();
}
return instance;
}
}
在上面的示例中,DBConnectionPool类使用了一个私有的静态实例变量instance
,并私有化了构造函数,这样就防止了外部通过实例化来创建对象。而通过公共的静态方法getInstance()
来获取实例,如果instance
为null,则创建一个新的实例,否则返回已有的实例。
这样,无论在什么地方调用DBConnectionPool.getInstance()
方法,都会返回同一个全局唯一的数据库连接池实例。