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