public class Principal {
public static void main(String[] args) {
int tipo = Integer.parseInt(args[0]);
double lado = Double.parseDouble(args[0]);
Figura figura =
FiguraFactoryMethod.getFigura(tipo, lado);
System.out.println("El area de la figura es: " + figura.getArea());
}
}
Creador
public interface FiguraFactoryMethod {
public final static int CUADRADO = 0;
public final static int CIRCULO = 1;
public Figura getFigura(int tipo, double lado);
}
Creador Concreto
public class FiguraFactory implements FiguraFactoryMethod {
publicFigura getFigura(int tipo, double lado) {
switch (tipo) {
case CUADRADO:
return new Cuadrado(lado);
case CIRCULO:
return new Circulo(lado);
}
return null;
}
}
Producto
public interface Figura {
public double getArea();
}
Producto Concreto
public class Circulo implements Figura {
double radio;
public Circulo(double radio) {
this.radio = radio;
}
public double getArea() {
return (3.14 * radio * radio);
}
}
Producto Concreto
public class Cuadrado implements Figura {
double lado;
public Cuadrado(double lado) {
this.lado = lado;
}
public double getArea() {
return lado * lado;
}
}