Hola, estoy resolviendo los ejercicios de Piensa en Java de Bruce Eckel y el problema dice asi..
Crear una clase denominada GestorConexion que gestione un Array Fijo de Objetos Conexion. El programador cliente no debe de ser capaz de crear explicitamente objetos Conexion, sino que solamente puede crear objetos a través de un método estatico de GestorConexion. Cuando el GestorConexion se quede sin objetos devolvera una referencia null. Probar las clases en main.. tip.. usar el patrón Singleton
Código PHP:
package c05.patrones;
class Conexion {
//Hacemos privado el constructor para poder instanciar con un método singleton
private Conexion(){
System.out.println("Me has creado");
}
static Conexion getInstance(){
return new Conexion();
}
}
public class GestorConexion {
static int instancias=5;
static Conexion[] ConexionesDisponibles = new Conexion[5];
static Conexion getInstance(){
if(instancias<1){
return null;
}else{
instancias--;
return ConexionesDisponibles[instancias].getInstance();
}
}
public static void main(String[] args) {
GestorConexion.getInstance();
GestorConexion.getInstance();
GestorConexion.getInstance();
GestorConexion.getInstance();
GestorConexion.getInstance();
GestorConexion.getInstance();
GestorConexion.getInstance();
GestorConexion.getInstance();
GestorConexion.getInstance();
GestorConexion.getInstance();
GestorConexion.getInstance();
}
}
Esto me da esta salida...
Código PHP:
Me has creado
Me has creado
Me has creado
Me has creado
Me has creado
Osea quiere decir que solo segun yo se crearon solo 5 objetos conexion dado que aunque invoco muchos más solo he permitido la creacion de 5.. no se Pero presiento que no esta bien :s por que dice que hay que crear un metodo en GestorConexion.. para crear los objetos conexion.. pero si el constructor de Conexion es privado como puedo hacer referencia a el :s
,
alguna idea?