gpt4 book ai didi

java - 为什么在单例类中必须有私有(private)构造函数

转载 作者:搜寻专家 更新时间:2023-11-01 00:59:09 26 4
gpt4 key购买 nike

这是我用于获取数据库连接的单例类。

我在这里有一个问题:为什么在单例类中必须有一个私有(private)构造函数(因为在我的整个应用程序中我只调用这个类一次)并且类的一个实例可以使用静态方法实现?

这个私有(private)构造函数是可以避免的还是必须的?

 public class ConnPoolFactory {
private static DataSource dataSource;
private static Connection connection;

private ConnPoolFactory() {
System.out.println(" ConnPoolFactory cons is called ");
}

public static synchronized Connection getConnection() throws SQLException {

try {

if (connection == null) {
Context initContext = new InitialContext();
Context envContext = (Context) initContext
.lookup("java:/comp/env");
dataSource = (DataSource) envContext.lookup("jdbc/Naresh");
connection = dataSource.getConnection();
} else {
return connection;
}

} catch (NamingException e) {
e.printStackTrace();
}

return connection;

}
}

最佳答案

否则每个人都可以创建你的类的实例,所以它不再是单例了。根据定义,对于单例,只能存在一个实例。

关于java - 为什么在单例类中必须有私有(private)构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com