什么是静态工厂方法? [英] What are static factory methods?
本文介绍了什么是静态工厂方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
什么是静态工厂"方法?
What's a "static factory" method?
推荐答案
我们避免提供对数据库连接的直接访问,因为它们是资源密集型的.所以我们使用静态工厂方法 getDbConnection
如果我们低于限制,它会创建一个连接.否则,它会尝试提供一个备用"连接,如果没有连接则失败并抛出异常.
We avoid providing direct access to database connections because they're resource intensive. So we use a static factory method getDbConnection
that creates a connection if we're below the limit. Otherwise, it tries to provide a "spare" connection, failing with an exception if there are none.
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);
//...
}
}
这篇关于什么是静态工厂方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文