public void devolverAlICuartl(IResponsable responsable) { Console.WriteLine("Devolviendo el heroe a su cuartel"); agregarVehiculo(responsable.getVehiculo()); agregarHerramienta(responsable.getHerramienta()); responsable.setHerramienta(null); responsable.setVehiculo(null); agregarPersonal(responsable); }
override public void revisar(IIluminable iluminable) { if (heroeReal == null) { heroeReal = fabrica.crearHeroe(); heroeReal.setHerramienta(fabrica.crearHerramienta()); heroeReal.setVehiculo(fabrica.crearVehiculo()); } heroeReal.revisar(iluminable); // devuelvo el bombero creado al cuartel fabrica.crearCuartel().agregarPersonal(heroeReal); fabrica.crearCuartel().agregarVehiculo(heroeReal.getVehiculo()); fabrica.crearCuartel().agregarHerramienta(heroeReal.getHerramienta()); }
override public void apagarIncendio(ILugar lugar) { if (heroeReal == null) { heroeReal = fabrica.crearHeroe(); // casteo para poder setear estrategia (propia de un bombero) heroeReal.setHerramienta(fabrica.crearHerramienta()); heroeReal.setVehiculo(fabrica.crearVehiculo()); // seteo la estrategia de apagado, pero antes creo un aux de tipo Bombero para poder setear apagado Bombero aux = (Bombero)heroeReal; Console.WriteLine("[BOMBERO] Elegir estrategia de apagado (ingresar número):"); Console.WriteLine(" 1. Apagado Secuencial"); Console.WriteLine(" 2. Apagado Escalera"); Console.WriteLine(" 3. Apagado Espiral"); bool opcionvalida = false; while (!opcionvalida) { char op = Console.ReadKey().KeyChar; switch (op) { case '1': aux.setEstrategiaApagado(new ApagadoSecuencial()); opcionvalida = true; break; case '2': aux.setEstrategiaApagado(new ApagadoEscalera()); opcionvalida = true; break; case '3': aux.setEstrategiaApagado(new ApagadoEspiral()); opcionvalida = true; break; default: Console.WriteLine(" \n ERROR: Por favor, ingrese una opción correcta: "); break; } } } heroeReal.apagarIncendio(lugar); // devuelvo el bombero creado al cuartel fabrica.crearCuartel().agregarPersonal(heroeReal); fabrica.crearCuartel().agregarVehiculo(heroeReal.getVehiculo()); fabrica.crearCuartel().agregarHerramienta(heroeReal.getHerramienta()); }
public override void patrullarCalles(IPatrullable lugarAPatrullar) { if (heroeReal == null) { heroeReal = fabrica.crearHeroe(); // casteo para poder setear orden (propia de un bombero) heroeReal.setHerramienta(fabrica.crearHerramienta()); heroeReal.setVehiculo(fabrica.crearVehiculo()); // seteo la estrategia de orden, pero antes creo un aux de tipo propio de heroe para poder setear apagado Policia aux = (Policia)heroeReal; Console.WriteLine("[POLICIA] Elegir orden de policía (ingresar número):"); Console.WriteLine(" 1. Voz de Alto"); Console.WriteLine(" 2. Perseguir y arrestar"); Console.WriteLine(" 3. Avisar y pedir refuerzos"); bool opcionvalida = false; while (!opcionvalida) { char op = Console.ReadKey().KeyChar; switch (op) { case '1': aux.setOrdenPolicia(new OPVozDeAlto()); opcionvalida = true; break; case '2': aux.setOrdenPolicia(new OPPerseguirYArrestar()); opcionvalida = true; break; case '3': aux.setOrdenPolicia(new OPAvisarYPedirRefuerzos()); opcionvalida = true; break; default: Console.WriteLine(" \n ERROR: Por favor, ingrese una opción correcta: "); break; } } } heroeReal.patrullarCalles(lugarAPatrullar); // devuelvo el bombero creado al cuartel fabrica.crearCuartel().agregarPersonal(heroeReal); fabrica.crearCuartel().agregarVehiculo(heroeReal.getVehiculo()); fabrica.crearCuartel().agregarHerramienta(heroeReal.getHerramienta()); }
public static void patronAbstractFactory() { //Instanciacion de la fabrica de bomberos FabricaBombero fabricaBombero = new FabricaBombero(); ICuartel cuartel = crearHeroe(fabricaBombero); IResponsable responsable = cuartel.getPersonal(); cuartel.agregarPersonal(responsable); cuartel.agregarHerramienta(responsable.getHerramienta()); cuartel.agregarVehiculo(responsable.getVehiculo()); //Instanciacion de la fabrica de electricistas FabricaElectricista fabricaElectricista = new FabricaElectricista(); ICuartel cuartel2 = crearHeroe(fabricaElectricista); IResponsable responsable2 = cuartel.getPersonal(); cuartel2.agregarPersonal(responsable2); cuartel2.agregarHerramienta(responsable2.getHerramienta()); cuartel2.agregarVehiculo(responsable2.getVehiculo()); //Intanciacion de la fabrica de policias FabricaPolicia fabricaPolicia = new FabricaPolicia(); ICuartel cuartel3 = crearHeroe(fabricaPolicia); IResponsable responsable3 = cuartel3.getPersonal(); cuartel3.agregarPersonal(responsable3); cuartel3.agregarHerramienta(responsable3.getHerramienta()); cuartel3.agregarVehiculo(responsable3.getVehiculo()); //Instanciacion de la fabrica de medicos FabricaMedico fabricaMedico = new FabricaMedico(); ICuartel cuartel4 = crearHeroe(fabricaMedico); IResponsable responsable4 = cuartel.getPersonal(); cuartel4.agregarPersonal(responsable4); cuartel4.agregarHerramienta(responsable4.getHerramienta()); cuartel4.agregarVehiculo(responsable4.getVehiculo()); }
override public void atenderInfarto(IInfartable paciente) { if (heroeReal == null) { heroeReal = fabrica.crearHeroe(); // casteo para poder setear estrategia (propia de un bombero) heroeReal.setHerramienta(fabrica.crearHerramienta()); heroeReal.setVehiculo(fabrica.crearVehiculo()); // seteo la estrategia de apagado, pero antes creo un aux de tipo Bombero para poder setear apagado Medico aux = (Medico)heroeReal; Console.WriteLine("[MEDICO] Elegir estrategia de protocolo RCP (ingresar número):"); Console.WriteLine(" 1. Intentar sin detenerse"); Console.WriteLine(" 2. Intentar y desistir"); bool opcionvalida = false; while (!opcionvalida) { char op = Console.ReadKey().KeyChar; switch (op) { case '1': aux.setProtocoloRCP(new RCPTipoA()); opcionvalida = true; break; case '2': aux.setProtocoloRCP(new RCPTipoB()); opcionvalida = true; break; default: Console.WriteLine(" \n ERROR: Por favor, ingrese una opción correcta: "); break; } } } heroeReal.atenderInfarto(paciente); // devuelvo el bombero creado al cuartel fabrica.crearCuartel().agregarPersonal(heroeReal); fabrica.crearCuartel().agregarVehiculo(heroeReal.getVehiculo()); fabrica.crearCuartel().agregarHerramienta(heroeReal.getHerramienta()); }