Está en la página 1de 3

package Factoria;

public interface CalcularNomina {

public void AsignarValorDia(double ValorDia);

public double CalcularSalario();

package Factoria;
public class NominaOperario implements CalcularNomina{

private int HorasTrabajadas;


private double ValorDia;

public NominaOperario(int HorasTrabajadas, double ValorDia) {


this.HorasTrabajadas = HorasTrabajadas;
this.ValorDia = ValorDia;
}
public int getHorasTrabajadas() {
return HorasTrabajadas;
}

public void setHorasTrabajadas(int HorasTrabajadas) {


this.HorasTrabajadas = HorasTrabajadas;
}

public double getValorDia() {


return ValorDia;
}

public void setValorDia(double ValorDia) {


this.ValorDia = ValorDia;
}

@Override
public void AsignarValorDia(double ValorDia) {
ValorDia = (HorasTrabajadas * ValorDia);
}

@Override
public double CalcularSalario() {
return HorasTrabajadas * ValorDia;
}

}
package Factoria;

import Factoria.FactoriaCalcularNomina;
public class NominaEmpleado implements CalcularNomina {

public static float Bonificacion = 25;


private int dias;
private double ValorDia;

public NominaEmpleado(int dias, double ValorDia) {


this.dias = dias;
this.ValorDia = ValorDia;
}

public static float getBonificacion() {


return Bonificacion;
}

public static void setBonificacion(float Bonificacion) {


NominaEmpleado.Bonificacion = Bonificacion;
}

public int getDias() {


return dias;
}

public void setDias(int dias) {


this.dias = dias;
}

public double getValorDia() {


return ValorDia;
}

public void setValorDia(double ValorDia) {


this.ValorDia = ValorDia;
}

@Override
public void AsignarValorDia(double total){
ValorDia=total;
}

@Override
public double CalcularSalario() {
return (Bonificacion + ValorDia)* dias;
}

}
package Factoria;

public class FactoriaCalcularNomina {


public CalcularNomina getNomina (String TipoNomina){
if (TipoNomina.equals ("Empleado")){
CalcularNomina empleado = new NominaEmpleado(10,20);
return empleado;
}else if(TipoNomina.equals ("Operario")){
CalcularNomina operario = new NominaEmpleado(10,20);
return operario;
}
return null;
}
}

package patrones;

import Factoria.CalcularNomina;
import Factoria.FactoriaCalcularNomina;

public class Patrones {

public static void main(String[] args) {


FactoriaCalcularNomina factoria = new FactoriaCalcularNomina();
CalcularNomina nomina = factoria.getNomina("Operario");
System.out.println(nomina.CalcularSalario());
}

También podría gustarte