We can avoid providing direct access to resource intensive constructors, like for databases.
public class DbConnection
{
private static final int MAX_CONNS = 100;
private static int totalConnections = 0;
private static Set<DbConnection> availableConnections = new HashSet<DbConnectio...