public IResponsable getPersonal()
        {
            Electricista responsable = (Electricista)this.responsables[contador];
            IHerramienta herramienta = this.herramientas[contador];
            IVehiculo    vehiculo    = this.vehiculos[contador];

            responsable.setHerramienta(herramienta);
            responsable.setVehiculo(vehiculo);

            contador++;
            return(responsable);
        }
Ejemplo n.º 2
0
        public static void pruebaPatronAbstractFactory()
        {
            //CREANDO LAS FABRICAS CONCRETAS DE CADA HEROE

            IFabricaDeHeroes fabricaPolicias     = new FabricaDePolicias();
            IFabricaDeHeroes fabricaBomberos     = new FabricaDeBomberos();
            IFabricaDeHeroes fabricaElectricista = new FabricaDeElectricistas();
            IFabricaDeHeroes fabricaMedicos      = new FabricaDeMedicos();

            //INVOCANDO AL METODO DE CLASE ESTATICO CREARHEROE QUE RECIBE UNA FABRICA Y SE ENCARGA DE CREAR
            //EL HEROE, EL VEHICULO Y LA HERRAMIENTA PARA ALMACENARLO EN UN CUARTEL Y RETORNAR EL IRESPONSABLE

            //CREANDO CUARTEL
            ICuartel cuartelPolicias = crearHeroe(fabricaPolicias);
            //LE SOLICITAMOS EL IRESPONSABLE(RESPONSABLE CON SU VEHICULO Y HERRAMIENTA) AL CUARTEL
            Policia policiaResponsable = (Policia)cuartelPolicias.getPersonal();

            policiaResponsable.setOrdenPolicial(new OrdenPerseguirDelincuente());
            policiaResponsable.PatrullarCalles(new Plaza());
            Console.WriteLine();

            ICuartel cuartelBomberos    = crearHeroe(fabricaBomberos);
            Bombero  bomberoResponsable = (Bombero)cuartelBomberos.getPersonal();

            bomberoResponsable.setEstrategia(new Escalera());
            bomberoResponsable.ApagarIncendio2(new Plaza(9, new ConstructorSimple()), new Calle(50));
            Console.WriteLine();

            ICuartel     cuartelElectricista     = crearHeroe(fabricaElectricista);
            Electricista electricistaResponsable = (Electricista)cuartelElectricista.getPersonal();
            Plaza        objPlaza = new Plaza();

            objPlaza.SetCantidadFarolas(10);
            electricistaResponsable.Revisar(objPlaza);
            Console.WriteLine();

            ICuartel cuartelMedicos    = crearHeroe(fabricaMedicos);
            Medico   medicoResponsable = (Medico)cuartelMedicos.getPersonal();

            medicoResponsable.setProtocolo(new ProtocoloB());
            medicoResponsable.AtenderInfarto(new Transeunte());
            Console.WriteLine();
        }
Ejemplo n.º 3
0
        //*********************************************************************************************************************

        public static void pruebaPatronComposite()
        {
            // IMPLEMENTA LA INTERFACE COMPONENTE, ES LA CLASE COMPUESTO QUE CONTIENE COMPONENTES HOJAS (CALLES, ESQUINAS Y PLAZAS) CONFORMANDO UNA MANZANA
            CompuestoManzana manzana1 = new CompuestoManzana();
            CompuestoManzana manzana2 = new CompuestoManzana();

            for (int i = 0; i < 4; i++)
            {
                Calle   objCalle1   = new Calle();
                Esquina objEsquina1 = new Esquina();
                //SE AGREGAN LAS INSTANCIAS DE CALLES Y ESQUINAS A LA LISTAS DE COMPUESTOS MANZANAS
                manzana1.Agregar(objCalle1);
                manzana1.Agregar(objEsquina1);
                manzana2.Agregar(objCalle1);
                manzana2.Agregar(objEsquina1);
            }

            Plaza objPlaza1 = new Plaza();
            Plaza objPlaza2 = new Plaza();

            //SE AGREGAN LAS PLAZAS A LAS MANZANAS
            manzana1.Agregar(objPlaza1);
            manzana1.Agregar(objPlaza2);
            manzana2.Agregar(objPlaza1);
            manzana2.Agregar(objPlaza2);

            //SE CREA UN COMPUESTO CIUDAD QUE ALMACENA DOS MANZANAS
            CompuestoCiudad objCiudad = new CompuestoCiudad();

            objCiudad.Agregar(manzana1);
            objCiudad.Agregar(manzana2);

            Electricista objElectricista = new Electricista();

            objElectricista.RevisarIluminable(objCiudad);
        }
Ejemplo n.º 4
0
        //*********************************************************************************************************************


        public static void pruebaPatronState()
        {
            //PATRON STATE (EL HEROE VA A REALIZAR SU TAREA SI EL VEHICULO NO SE ROMPE EN EL TRAYECTO (METODO CONDUCIR))

            //INSTANCIAS DE CALLES (SE LE PASA POR PARAMETRO EL CAUDAL DE AGUA DISPONIBLE)
            Calle calle3 = new Calle(50);
            Calle calle4 = new Calle(50);
            Calle calle5 = new Calle(50);

            //INSTANCIAS DE LUGARES
            ILugar G = new Plaza(9, new ConstructorSimple());
            ILugar H = new Plaza(9, new ConstructorSimple());
            ILugar I = new Plaza(9, new ConstructorSimple());

            //PATRON ITERATOR CON DENUNCIASPORWHATSAPP

            //CREACION DE LISTA ENLAZADA

            //REFERENCIA DE TIPO MensajeWhatsapp QUE NO CONTIENE NADA
            MensajeWhatsapp listadenunciaWhatsapp = null;

            //DENUNCIAS DE INCENDIO
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeIncendio(G, calle3), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeIncendio(H, calle4), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeIncendio(I, calle5), listadenunciaWhatsapp);

            //DENUNCIAS NUEVAS DE LA CONSIGNA NUMERO 12 (CHAIN OF RESPONSABILITY)

            //DOS DENUNCIAS DE INFARTOS
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeInfarto(new Transeunte()), listadenunciaWhatsapp);

            Passerby    objPasserby = new Passerby(1.2, 1.2, 1.2);
            IInfartable infartable  = new IInfartableAdapter(objPasserby);

            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeInfarto(infartable), listadenunciaWhatsapp);

            //TRES DENUNCIAS POR ROBO
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeRobo(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeRobo(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeRobo(new Plaza()), listadenunciaWhatsapp);

            //CINCO DENUNCIAS POR LAMPARAS QUEMADAS
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);

            //INSTANCIA DE DENUNCIAPORWHATSAPP A LA CUAL SE LE PASA POR PARAMETRO UNA LISTA ENLAZADA
            DenunciasPorWhatsapp denuncia2 = new DenunciasPorWhatsapp(listadenunciaWhatsapp);


            //CADENA DE HEROES

            Manejador m = new Bombero(null, new Escalera(), new Manguera(), new Autobomba());

            m = new Policia(m, new OrdenVozdeAlto(), new Pistola(), new Patrullero());

            m = new Medico(m, new ProtocoloA(), new Desfibrilador(), new Ambulancia());

            m = new Electricista(m, new Buscapolo(), new Camioneta());


            //SE LE PASA COMO PARAMETRO UNA CADENA DE MANEJADORES AL OPERADOR
            //ESTOS HEROES REALIZARAN SU TAREA SI EL VEHICULO NO SE ROMPIO POR EL CAMINIO
            Operador911 objOperador = new Operador911(m);

            objOperador.atenderDenuncias(denuncia2);
        }
Ejemplo n.º 5
0
        //*********************************************************************************************************************


        public static void PruebaPatronProxy()
        {
            //INSTANCIAS DE CALLES (SE LE PASA POR PARAMETRO EL CAUDAL DE AGUA DISPONIBLE)
            Calle calle3 = new Calle(50);
            Calle calle4 = new Calle(50);
            Calle calle5 = new Calle(50);

            //INSTANCIAS DE LUGARES
            ILugar G = new Plaza(9, new ConstructorSimple());
            ILugar H = new Plaza(9, new ConstructorSimple());
            ILugar I = new Plaza(9, new ConstructorSimple());

            //PATRON ITERATOR CON DENUNCIASPORWHATSAPP

            //CREACION DE LISTA ENLAZADA

            //REFERENCIA DE TIPO MensajeWhatsapp QUE NO CONTIENE NADA
            MensajeWhatsapp listadenunciaWhatsapp = null;

            //DENUNCIAS DE INCENDIO
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeIncendio(G, calle3), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeIncendio(H, calle4), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeIncendio(I, calle5), listadenunciaWhatsapp);

            //DENUNCIAS NUEVAS DE LA CONSIGNA NUMERO 12 (CHAIN OF RESPONSABILITY)

            //DOS DENUNCIAS DE INFARTOS
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeInfarto(new Transeunte()), listadenunciaWhatsapp);

            Passerby    objPasserby = new Passerby(1.2, 1.2, 1.2);
            IInfartable infartable  = new IInfartableAdapter(objPasserby);

            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeInfarto(infartable), listadenunciaWhatsapp);

            //TRES DENUNCIAS POR ROBO
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeRobo(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeRobo(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeRobo(new Plaza()), listadenunciaWhatsapp);

            //CINCO DENUNCIAS POR LAMPARAS QUEMADAS
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);
            listadenunciaWhatsapp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Plaza()), listadenunciaWhatsapp);

            //INSTANCIA DE DENUNCIAPORWHATSAPP A LA CUAL SE LE PASA POR PARAMETRO UNA LISTA ENLAZADA
            DenunciasPorWhatsapp denuncia2 = new DenunciasPorWhatsapp(listadenunciaWhatsapp);


            //FABRICA PARA EL ESTADO DE BOMBERO PROXY PARA QUE PUEDA CREAR AL BOMBERO REAL
            FabricaDeBomberos fabrica = new FabricaDeBomberos();

            //PATRON PROXY PRUEBA

            //UN BOMBERO PROXY ES UN MANEJADOR, ESTE TIENE EN SU ESTADO UNA IFABRICADEHEROES QUE ES USADA PARA CREAR AL BOMBERO REAL A
            //LA HORA DE INVOCAR EL METODO APAGAR INCENDIO

            //CADENA DE RESPONSABILIDADES
            Manejador m = new BomberoProxy(null, fabrica);

            m = new Policia(m, new OrdenVozdeAlto(), new Pistola(), new Patrullero());

            m = new Medico(m, new ProtocoloA(), new Desfibrilador(), new Ambulancia());

            m = new Electricista(m, new Buscapolo(), new Camioneta());


            //SE LE PASA COMO PARAMETRO UNA CADENA DE MANEJADORES AL OPERADOR
            Operador911 objOperador = new Operador911(m);

            objOperador.atenderDenuncias(denuncia2);
        }