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