什么是静态工厂方法?

问题:

什么是“静态工厂”方法?

回答:

我们避免提供直接访问数据库连接,因为它们是资源密集型的。所以我们使用静态工厂方法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);
     //...
   }
}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: What are static factory methods?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

9 + 1 =