コード例 #1
0
        public static ICuartel crearHeroe(IFabricaDeHeroes fabrica)
        {
            ICuartel cuartel = fabrica.crearCuartel();

            cuartel.agregarPersonal(fabrica.crearHeroe());
            cuartel.agregarHerramienta(fabrica.crearHerramienta());
            cuartel.agregarVehiculo(fabrica.crearVehiculo());
            return(cuartel);
        }
コード例 #2
0
        public static ICuartel crearHeroe(IFabricaDeHeroes fabricaDeHeroes)
        {
            ICuartel     cuartel     = fabricaDeHeroes.crearCuartel();
            IResponsable responsable = fabricaDeHeroes.crearHeroe();
            IVehiculo    vehiculo    = fabricaDeHeroes.crearVehiculo();
            IHerramienta herramienta = fabricaDeHeroes.crearHerramienta();

            cuartel.agregarVehiculo(vehiculo);
            cuartel.agregarPersonal(responsable);
            cuartel.agregarHerramienta(herramienta);
            return(cuartel);
        }
コード例 #3
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());
 }
コード例 #4
0
        public override void apagarIncendio(ILugar lugar, Calle calle)
        {
            if (fabrica == null)
            {
                fabrica = new  FabricaDeBombero();
            }

            Bombero bombero = (Bombero)fabrica.crearHeroe();

            bombero.Herramienta = fabrica.crearHerramienta();
            bombero.Vehiculo    = fabrica.crearVehiculo();

            bombero.apagarIncendio(lugar, calle);
        }
コード例 #5
0
        public override void revisar(ILuminable l)
        {
            if (fabrica == null)
            {
                fabrica = new FabricaDeElectricista();
            }

            Electricista electricista = (Electricista)fabrica.crearHeroe();

            electricista.Herramienta = fabrica.crearHerramienta();
            electricista.Vehiculo    = fabrica.crearVehiculo();


            electricista.revisar(l);
        }
コード例 #6
0
        public override void patrullarCalles(IPatrullable patrullable)
        {
            if (fabrica == null)
            {
                fabrica = new FabricaDePolicia();
            }

            Policia policia = (Policia)fabrica.crearHeroe();

            policia.Herramienta = fabrica.crearHerramienta();
            policia.Vehiculo    = fabrica.crearVehiculo();


            policia.patrullarCalles(patrullable);
        }
コード例 #7
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());
        }
コード例 #8
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());
        }
コード例 #9
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());
        }
コード例 #10
0
ファイル: MedicoProxy.cs プロジェクト: tranzert/DesignPartner
		public override void atenderInfarto(IInfartable transeunte){
			
			
			if (fabrica==null) {
				
				fabrica= new FabricaDeMedico();
			}
			
			Medico medico= (Medico)fabrica.crearHeroe();
			medico.Herramienta= fabrica.crearHerramienta();
			medico.Vehiculo= fabrica.crearVehiculo();
			
			
			medico.atenderInfarto(transeunte);
			
			
		
		
			
			
		}
        //SOBREESCRIBIENDO EL METODO APAGAR INCENDIO


        public override void ApagarIncendio2(ILugar pLugar, Calle pCalle)
        {
            IResponsable bombero   = fabrica.crearHeroe();
            IHerramienta manguera  = fabrica.crearHerramienta();
            IVehiculo    autobomba = fabrica.crearVehiculo();

            //USO DE PATRON SINGLETON
            CuartelDeBomberos cuartel = CuartelDeBomberos.getCuartelBombero();

            //SE AGREGA AL CUARTEL
            cuartel.agregarPersonal(bombero);
            cuartel.agregarHerramienta(manguera);
            cuartel.agregarVehiculo(autobomba);

            //OBTENGO EL BOMBERO RESPONSABLE
            Bombero bomberoResponsable = (Bombero)cuartel.getPersonal();

            //LE ASIGNO UNA ESTRATEGIA
            bomberoResponsable.setEstrategia(new Escalera());

            //DELEGO LA TAREA AL VERDADERO BOMBERO, PASANDO EL ILUGAR Y LA CALLE
            bomberoResponsable.ApagarIncendio2(pLugar, pCalle);
        }