public static ICuartel crearHeroe(IFabricaDeHeroes fabrica) { IResponsable responsable = fabrica.crearHeroe(); ICuartel cuartel = fabrica.crearCuartel(); IHerramienta herramienta = fabrica.crearHerramienta(); IVehiculo vehiculo = fabrica.crearVehiculo(); cuartel.agregarherramienta(herramienta); cuartel.agregarPersonal(responsable); cuartel.agregarVehiculo(vehiculo); return(cuartel); }
public static void TestAbstractFactory() { IFabricaDeHeroes fabrica_electricista = new FabricaDeElectricista(); IFabricaDeHeroes fabrica_policia = new FabricaDePolicia(); IFabricaDeHeroes fabrica_bombero = new FabricaDeBombero(); IFabricaDeHeroes fabrica_medico = new FabricaDeMedico(); ICuartel central_electrica = crearHeroe(fabrica_electricista); ICuartel comisaria = crearHeroe(fabrica_policia); ICuartel cuartel_de_bomberos = crearHeroe(fabrica_bombero); ICuartel hospital = crearHeroe(fabrica_medico); IResponsable electricista = central_electrica.getPersonal(); IResponsable bombero = cuartel_de_bomberos.getPersonal(); IResponsable medico = hospital.getPersonal(); IResponsable policia = comisaria.getPersonal(); Plaza plaza = new Plaza("luz", 40, 19, 10); Esquina esquina = new Esquina(4); Casa casa = new Casa(1, 40, 5); Calle calle = new Calle(100, 4, 85); casa.Calle = calle; IInfartable trauseunte = new Transeunte(); Console.ForegroundColor = ConsoleColor.Red; ((Electricista)electricista).revisar(plaza); //guardando electricista al cuartel, su herramienta y vehiculo central_electrica.agregarherramienta(((Electricista)electricista).Herramienta); central_electrica.agregarVehiculo(((Electricista)electricista).Vehiculo); ((Electricista)electricista).Herramienta = null; ((Electricista)electricista).Vehiculo = null; central_electrica.agregarPersonal(electricista); electricista = null; Console.ForegroundColor = ConsoleColor.Green; ((Policia)policia).patrullarCalles(esquina); //guardando policia al cuartel, su herramienta y vehiculo comisaria.agregarherramienta(((Policia)policia).Herramienta); comisaria.agregarVehiculo(((Policia)policia).Vehiculo); ((Policia)policia).Herramienta = null; ((Policia)policia).Vehiculo = null; comisaria.agregarPersonal(policia); policia = null; Console.ForegroundColor = ConsoleColor.Cyan; ((Bombero)bombero).apagarIncendio(casa, casa.Calle); //guardando bombero al cuartel, su herramienta y vehiculo cuartel_de_bomberos.agregarherramienta(((Bombero)bombero).Herramienta); cuartel_de_bomberos.agregarVehiculo(((Bombero)bombero).Vehiculo); ((Bombero)bombero).Herramienta = null; ((Bombero)bombero).Vehiculo = null; cuartel_de_bomberos.agregarPersonal(bombero); bombero = null; Console.ForegroundColor = ConsoleColor.DarkYellow; ((Medico)medico).atenderInfarto(trauseunte); //guardando medico al cuartel, su herramienta y vehiculo hospital.agregarherramienta(((Medico)medico).Herramienta); hospital.agregarVehiculo(((Medico)medico).Vehiculo); ((Medico)medico).Herramienta = null; ((Medico)medico).Vehiculo = null; hospital.agregarPersonal(medico); medico = null; }