30/09/2018, 18:56
"Static factory method" trong Java?
Mình đang đọc phần đầu của cuốn Effective Java, nhưng mà vốn tiếng Anh còn kém nên chưa hiểu nhiều, đầu sách có phần “Consider static factory method instead of Constructor”. Có cao nhân nào thông thạo về vấn đề này thì chỉ mình với…
Còn đây là 1 ví dụ về static factory method mình copy từ Stack Overflow:
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);
//...
}
}
Bài liên quan
Bạn hiểu thế nào về static trong java?
Mình chỉ biết static là khai báo tĩnh, hàm và biến static không cần gọi thông qua đối tượng
Please help…