Commit 3db7d20a authored by Josue Ponte's avatar Josue Ponte

Patron Factory

parent 7c7b6afa
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
package org.example.designpatterns.factory;
import org.example.designpatterns.factory.interfaces.IConnection;
public class App {
public static void main(String[] args) {
ConnectionFactory factory = new ConnectionFactory();
IConnection cx1 = factory.getConnection("MYSQL");
cx1.conectar();
cx1.desconectar();
IConnection cx2 = factory.getConnection("POSTGRE");
cx2.conectar();
cx2.desconectar();
IConnection cx3 = factory.getConnection("H2");
cx3.conectar();
cx3.desconectar();
}
}
package org.example.designpatterns.factory;
import org.example.designpatterns.factory.interfaces.IConnection;
import org.example.designpatterns.factory.interfaces.impl.ConnectionMySQL;
import org.example.designpatterns.factory.interfaces.impl.ConnectionPostgreSQL;
import org.example.designpatterns.factory.interfaces.impl.ConnectionVacia;
public class ConnectionFactory {
public IConnection getConnection(String motor) {
if (motor == null)
return new ConnectionVacia();
if (motor.equalsIgnoreCase("MYSQL"))
return new ConnectionMySQL();
else if (motor.equalsIgnoreCase("POSTGRE"))
return new ConnectionPostgreSQL();
return new ConnectionVacia();
}
}
package org.example.designpatterns.factory.interfaces;
public interface IConnection {
void conectar();
void desconectar();
}
package org.example.designpatterns.factory.interfaces.impl;
import org.example.designpatterns.factory.interfaces.IConnection;
public class ConnectionMySQL implements IConnection {
private String host;
private String puerto;
private String usuario;
private String password;
public ConnectionMySQL() {
this.host = "localhost";
this.puerto = "3306";
this.usuario = "root";
this.password = "Jp0nt32023";
}
@Override
public void conectar() {
System.out.println("Se conécto a MySQL");
}
@Override
public void desconectar() {
System.out.println("Se desconécto de MySQL");
}
@Override
public String toString() {
return "ConnectionMySQL{" +
"host='" + host + '\'' +
", puerto='" + puerto + '\'' +
", usuario='" + usuario + '\'' +
", password='" + password + '\'' +
'}';
}
}
package org.example.designpatterns.factory.interfaces.impl;
import org.example.designpatterns.factory.interfaces.IConnection;
public class ConnectionPostgreSQL implements IConnection {
private String host;
private String puerto;
private String usuario;
private String password;
public ConnectionPostgreSQL() {
this.host = "localhost";
this.puerto = "5433";
this.usuario = "postgres";
this.password = "Jp0nt32023";
}
@Override
public void conectar() {
System.out.println("Se conécto a PostgreSQL");
}
@Override
public void desconectar() {
System.out.println("Se desconécto de PostgreSQL");
}
@Override
public String toString() {
return "ConnectionPostgreSQL{" +
"host='" + host + '\'' +
", puerto='" + puerto + '\'' +
", usuario='" + usuario + '\'' +
", password='" + password + '\'' +
'}';
}
}
package org.example.designpatterns.factory.interfaces.impl;
import org.example.designpatterns.factory.interfaces.IConnection;
public class ConnectionVacia implements IConnection {
@Override
public void conectar() {
System.out.println("No se especificó proveedor");
}
@Override
public void desconectar() {
System.out.println("No se especificó proveedor");
}
}
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