Diseño de aplicaciones orientadas a objetos
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
package patronAbstractFactory;
|
|
|
|
|
|
|
|
|
|
/*Permite trabajar con objetos de distintas familias (proporcionando una interfaz) de manera que las familias
|
|
|
|
|
* no se mezclen entre s<EFBFBD> y haciendo transparente el tipo de familia concreta que se est<EFBFBD> usando. */
|
|
|
|
|
|
|
|
|
|
public class Main {
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
//en este caso la fabrica dependeria del sistema operativo.
|
|
|
|
|
//mirariamos el sistema y devuelve 0 si es windows, o 1 si es linux.
|
|
|
|
|
|
|
|
|
|
int sistema = 0;
|
|
|
|
|
Cliente c1 = new Cliente(crearFabrica(sistema));
|
|
|
|
|
|
|
|
|
|
sistema = 1;
|
|
|
|
|
Cliente c2 = new Cliente(crearFabrica(sistema));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static AbstractFactory crearFabrica(int sistema) {
|
|
|
|
|
if(sistema==0) {
|
|
|
|
|
return new FabricaWindows();
|
|
|
|
|
}else {
|
|
|
|
|
return new FabricaLinux();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|