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);
 }
Beispiel #2
0
 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());
 }
Beispiel #3
0
        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());
        }
Beispiel #4
0
        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());
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
        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());
        }