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); }
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(); }
//********************************************************************************************************************* 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); }
//********************************************************************************************************************* 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); }
//********************************************************************************************************************* 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); }