什么是“静态工厂”方法?
最佳答案
我们避免直接访问数据库连接,因为它们占用大量资源。因此,我们使用静态工厂方法getDbConnection
来创建连接(如果我们低于限制)。否则,它将尝试提供“备用”连接,如果不存在则失败,并显示异常。
public class DbConnection{
private static final int MAX_CONNS = 100;
private static int totalConnections = 0;
private static Set<DbConnection> availableConnections = new HashSet<DbConnection>();
private DbConnection(){
// ...
totalConnections++;
}
public static DbConnection getDbConnection(){
if(totalConnections < MAX_CONNS){
return new DbConnection();
}else if(availableConnections.size() > 0){
DbConnection dbc = availableConnections.iterator().next();
availableConnections.remove(dbc);
return dbc;
}else {
throw new NoDbConnections();
}
}
public static void returnDbConnection(DbConnection dbc){
availableConnections.add(dbc);
//...
}
}