public static ICuartel crearHeroe(IFabricaDeHeroes fabrica)
        {
            ICuartel cuartel = fabrica.crearCuartel();

            cuartel.agregarPersonal(fabrica.crearHeroe());
            cuartel.agregarHerramienta(fabrica.crearHerramienta());
            cuartel.agregarVehiculo(fabrica.crearVehiculo());
            return(cuartel);
        }
Exemple #2
0
        public static ICuartel crearHeroe(IFabricaDeHeroes fabricaDeHeroes)
        {
            ICuartel     cuartel     = fabricaDeHeroes.crearCuartel();
            IResponsable responsable = fabricaDeHeroes.crearHeroe();
            IVehiculo    vehiculo    = fabricaDeHeroes.crearVehiculo();
            IHerramienta herramienta = fabricaDeHeroes.crearHerramienta();

            cuartel.agregarVehiculo(vehiculo);
            cuartel.agregarPersonal(responsable);
            cuartel.agregarHerramienta(herramienta);
            return(cuartel);
        }
Exemple #3
0
        public static void patronAbstractFactory()
        {
            //Instanciacion de la fabrica de bomberos

            FabricaBombero fabricaBombero = new FabricaBombero();
            ICuartel       cuartel        = crearHeroe(fabricaBombero);
            IResponsable   responsable    = cuartel.getPersonal();

            cuartel.agregarPersonal(responsable);
            cuartel.agregarHerramienta(responsable.getHerramienta());
            cuartel.agregarVehiculo(responsable.getVehiculo());

            //Instanciacion de la fabrica de electricistas

            FabricaElectricista fabricaElectricista = new FabricaElectricista();
            ICuartel            cuartel2            = crearHeroe(fabricaElectricista);
            IResponsable        responsable2        = cuartel.getPersonal();

            cuartel2.agregarPersonal(responsable2);
            cuartel2.agregarHerramienta(responsable2.getHerramienta());
            cuartel2.agregarVehiculo(responsable2.getVehiculo());

            //Intanciacion de la fabrica de policias

            FabricaPolicia fabricaPolicia = new FabricaPolicia();
            ICuartel       cuartel3       = crearHeroe(fabricaPolicia);
            IResponsable   responsable3   = cuartel3.getPersonal();

            cuartel3.agregarPersonal(responsable3);
            cuartel3.agregarHerramienta(responsable3.getHerramienta());
            cuartel3.agregarVehiculo(responsable3.getVehiculo());

            //Instanciacion de la fabrica de medicos

            FabricaMedico fabricaMedico = new FabricaMedico();
            ICuartel      cuartel4      = crearHeroe(fabricaMedico);
            IResponsable  responsable4  = cuartel.getPersonal();

            cuartel4.agregarPersonal(responsable4);
            cuartel4.agregarHerramienta(responsable4.getHerramienta());
            cuartel4.agregarVehiculo(responsable4.getVehiculo());
        }
        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;
        }