Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Duda instancia connection

Buenas tardes,

Tengo una duda al crear la clase "ConnectionFactory". Por qué cuando en la clase "PruebaConexion" se instancia la clase "ConnectionFactory", esta se inctancia de la siguiente manera:

Connection con = new ConnectionFactory().recuperaConexion();   

y no se instancia de la manera:

ConnectionFactory con = new ConnectionFactory();

Gracias

2 respuestas

Hola Miguel, espero te encuentres bien.

Estuve viendo porque tambien tenia la misma duda que tu, pero no se si te pudiste percatar que cuando creas una conexion de tipo ConnectionFactory, no tienes acceso a los mismos metodos que la interface Connection.

Porque, si te fijas la clase ConnectionFactory es una clase publica normal , la puedes instanciar y toda la cosa, pero al momento de tu intetar acceder a los objetos de dicha clase solo tendras el metodo recuperaConexion(), porque es el unico que tiene.

Ahora, si instancias un objeto de tipo Connection, diciendo que sera una nueva clase de tipo ConnectionFactory y a su vez haciendo el llamado al metodo recuperaConexion() (que es un metodo de tipo Connection), si podras acceder a los metodos de Connection, como es el caso de .close();.

Fue la conclusion que pude obtener al momento de analisar el funcionamiento. Espero haberme dado a entender.

Un saludos desde Rep. Dom. :)

Hola Compañero, el instructor instancia de esta manera debido al diseño de patron "factory method" que se nos menciona en la casi parte final del video sin embargo puedes instanciar la clase ConnectionFactory de manera normal y depues asignarle el metodo de esta instancia a un objeto del tipo Connection como muestro a continuacion: Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadEn escencia el codigo que escribi hace la misma funcion que el que se nos muestra en el video, solo el instructor lo resume / acorta.