Commit e99afeb9 authored by Josue's avatar Josue

Patron Dependency Injection

parent da30102e
package org.example.designpatterns.dependencyinjection;
import org.example.designpatterns.dependencyinjection.dao.*;
public class App {
public static void main(String[] args) {
IConnection cx1 = new ConnectionMySQL("jponte", "7482", "localhost");
IConnection cx2 = new ConnectionPostgreSQL("jponte", "7482", "192.168.1.1");
IPersonaDAO dao1 = new PersonaDAOImpl();
dao1.setConnection(cx1);
dao1.listarTodos();
IPersonaDAO dao2= new PersonaDAOImpl();
dao2.setConnection(cx2);
dao2.listarTodos();
}
}
package org.example.designpatterns.dependencyinjection.dao;
public class ConnectionMySQL implements IConnection {
private String usuario;
private String clave;
private String host;
public ConnectionMySQL(String usuario, String clave, String host) {
this.usuario = usuario;
this.clave = clave;
this.host = host;
}
@Override
public void conectar() {
System.out.println("Conectando con MySQL...");
}
}
package org.example.designpatterns.dependencyinjection.dao;
public class ConnectionPostgreSQL implements IConnection {
private String usuario;
private String clave;
private String host;
public ConnectionPostgreSQL(String usuario, String clave, String host) {
this.usuario = usuario;
this.clave = clave;
this.host = host;
}
@Override
public void conectar() {
System.out.println("Conectando con PostgreSQL...");
}
}
package org.example.designpatterns.dependencyinjection.dao;
import java.util.List;
public interface ICRUD<T> {
List<T> listarTodos();
T leerPorId(int id);
void registrar(T persona);
void actualizar(T persona);
void eliminar(int id);
}
package org.example.designpatterns.dependencyinjection.dao;
public interface IConnection {
void conectar();
}
package org.example.designpatterns.dependencyinjection.dao;
import org.example.designpatterns.dependencyinjection.model.Persona;
public interface IPersonaDAO extends ICRUD<Persona> {
void mostrarNombre(Persona persona);
void setConnection(IConnection connection);
}
package org.example.designpatterns.dependencyinjection.dao;
import org.example.designpatterns.dependencyinjection.model.Persona;
import java.util.List;
public class PersonaDAOImpl implements IPersonaDAO {
private IConnection connection;
/*public PersonaDAOImpl(IConnection connection) {
this.connection = connection;
}*/
public void setConnection(IConnection connection) {
this.connection = connection;
}
@Override
public List<Persona> listarTodos() {
this.connection.conectar();
System.out.println("Listando.....");
return null;
}
@Override
public Persona leerPorId(int id) {
return null;
}
@Override
public void registrar(Persona persona) {
System.out.println("Persona " + persona.getNombres() + " registrada");
}
@Override
public void actualizar(Persona persona) {
System.out.println("Persona " + persona.getNombres() + " actualizada");
}
@Override
public void eliminar(int id) {
System.out.println("id " + id + " eliminado");
}
@Override
public void mostrarNombre(Persona per) {
System.out.println("Los nombres de la persona son : " + per.getNombres());
}
}
package org.example.designpatterns.dependencyinjection.model;
public class Persona {
private int id;
private String nombres;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNombres() {
return nombres;
}
public void setNombres(String nombres) {
this.nombres = nombres;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment