Ok, so, after asking here..., and looking on the net, I found some interesting stuff...
Now I'm reading the book "Thinking in Patterns", I found a digital versión of it from the author..., the thing is, when he shows the code for the "ObjectPool", I understand the implementation of that pattern, but then, it uses a "Singleton" to manage some how, the ObjectPool...., I even understand the concept, but the problem is, that when he implements the singleton, he doesn't declare the constructor for that clase (which, for what I understand, should be private)..., wouldn't that be a problem, since the compiler would assign a general one???
The code for the singleton is here:
class ConnectionPool { // A singleton
private static PoolManager pool = new PoolManager();
public static void addConnections(int number) {
for(int i = 0; i < number; i++)
pool.add(new ConnectionImplementation());
}
public static Connection getConnection()
throws PoolManager.EmptyPoolException {
return (Connection)pool.get();
}
public static void releaseConnection(Connection c) {
pool.release(c);
}
}
And then, he uses it like this:
public class ConnectionPoolDemo extends TestCase {
static {
ConnectionPool.addConnections(5);
}
public void test(){
Connection c = null;
try {
c = ConnectionPool.getConnection();
} catch (PoolManager.EmptyPoolException e) {
throw new RuntimeException(e);
}
c.set(new Object());
c.get();
ConnectionPool.releaseConnection(c);
}
public void test2() {
Connection c = null;
try {
c = ConnectionPool.getConnection();
} catch (PoolManager.EmptyPoolException e) {
throw new RuntimeException(e);
}
c.set(new Object());
c.get();
ConnectionPool.releaseConnection(c);
}
public static void main(String args[]) {
junit.textui.TestRunner.run(ConnectionPoolDemo.class);
}
} ///:~
Thanks in advance....