Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/02/2008, 23:54
Avatar de _ssx
_ssx
 
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años, 6 meses
Puntos: 60
Duda usando singleton

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?
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador

Última edición por _ssx; 19/02/2008 a las 01:21