//********************************************************************************************************************* 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); }
//********************************************************************************************************************* 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 pruebaPatronSingleton() { //CREACION DE FABRICA DE CADA HEROE CON SU VEHICULOS Y HERRAMIENTA FabricaDeBomberos objFabricaBombero = new FabricaDeBomberos(); IResponsable bomberoResponsable = objFabricaBombero.crearHeroe(); IVehiculo vehiculoBombero = objFabricaBombero.crearVehiculo(); IHerramienta herramientaBombero = objFabricaBombero.crearHerramienta(); FabricaDeElectricistas objFabricaElectricista = new FabricaDeElectricistas(); IResponsable electricistaResponsable = objFabricaElectricista.crearHeroe(); IVehiculo vehiculoElectricista = objFabricaElectricista.crearVehiculo(); IHerramienta herramientaElectrica = objFabricaElectricista.crearHerramienta(); FabricaDePolicias objFabricaPolicia = new FabricaDePolicias(); IResponsable policiaResponsable = objFabricaPolicia.crearHeroe(); IVehiculo vehiculoPolicial = objFabricaPolicia.crearVehiculo(); IHerramienta herramientaPolicial = objFabricaPolicia.crearHerramienta(); FabricaDeMedicos objFabricaMedico = new FabricaDeMedicos(); IResponsable medicoResponsable = objFabricaMedico.crearHeroe(); IVehiculo vehiculoMedico = objFabricaMedico.crearVehiculo(); IHerramienta herramientaMedica = objFabricaMedico.crearHerramienta(); //CREACION DE CUARTELES DE LOS HEROES Y SE AGREGA SU PERSONAL RESPONSABLE CORRESPONDIENTE CON SU HERRAMIENTA Y VEHICULO //USO DEL METODO ESTATICO DEL PATRON SINGLETON PARA CREAR UNA SOLA INSTANCIA DEL CUARTEL CuartelDeBomberos cuartelBomberos = CuartelDeBomberos.getCuartelBombero(); cuartelBomberos.agregarPersonal(bomberoResponsable); cuartelBomberos.agregarVehiculo(vehiculoBombero); cuartelBomberos.agregarHerramienta(herramientaBombero); //USO DEL METODO ESTATICO DEL PATRON SINGLETON PARA CREAR UNA SOLA INSTANCIA DEL CUARTEL CentralElectrica central = CentralElectrica.getCuartelElectricista(); central.agregarPersonal(electricistaResponsable); central.agregarVehiculo(vehiculoElectricista); central.agregarHerramienta(herramientaElectrica); //USO DEL METODO ESTATICO DEL PATRON SINGLETON PARA CREAR UNA SOLA INSTANCIA DEL CUARTEL Comisaria cuartelDePolicia = Comisaria.getCuartelPolicia(); cuartelDePolicia.agregarPersonal(policiaResponsable); cuartelDePolicia.agregarVehiculo(vehiculoPolicial); cuartelDePolicia.agregarHerramienta(herramientaPolicial); //USO DEL METODO ESTATICO DEL PATRON SINGLETON PARA CREAR UNA SOLA INSTANCIA DEL CUARTEL Hospital hospital = Hospital.getHospital(); hospital.agregarPersonal(medicoResponsable); hospital.agregarVehiculo(vehiculoMedico); hospital.agregarHerramienta(herramientaMedica); //LE SOLICITAMOS A LOS CUARTES CREADOS, LOS HEROES AGREGADOS ANTERIORMENTE Y PROCEDEMOS A LLAMAR SUS METODOS DE ACCION IResponsable b1 = cuartelBomberos.getPersonal(); Bombero bombero = (Bombero)b1; bombero.setEstrategia(new Escalera()); bombero.ApagarIncendio2(new Plaza(9, new ConstructorSimple()), new Calle(50)); Console.WriteLine(); IResponsable b3 = central.getPersonal(); b3.Revisar(new Plaza()); Console.WriteLine(); IResponsable b2 = cuartelDePolicia.getPersonal(); Policia policia = (Policia)b2; policia.setOrdenPolicial(new OrdenVozdeAlto()); policia.PatrullarCalles(new Plaza()); Console.WriteLine(); IResponsable b4 = hospital.getPersonal(); Medico medico = (Medico)b4; medico.setProtocolo(new ProtocoloA()); medico.AtenderInfarto(new Transeunte()); Console.WriteLine(); }