public static void TestSingleton()
        {
            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);


            for (int i = 0; i < 4; i++)
            {
                central_electrica = crearHeroe(fabrica_electricista);
            }

            for (int i = 0; i < 4; i++)
            {
                comisaria = crearHeroe(fabrica_policia);
            }

            for (int i = 0; i < 4; i++)
            {
                cuartel_de_bomberos = crearHeroe(fabrica_bombero);
            }

            for (int i = 0; i < 4; i++)
            {
                hospital = crearHeroe(fabrica_medico);
            }


            IResponsable electricista  = central_electrica.getPersonal();
            IResponsable electricista2 = central_electrica.getPersonal();
            IResponsable electricista3 = central_electrica.getPersonal();
            IResponsable electricista4 = central_electrica.getPersonal();

            IResponsable bombero  = cuartel_de_bomberos.getPersonal();
            IResponsable bombero2 = cuartel_de_bomberos.getPersonal();
            IResponsable bombero3 = cuartel_de_bomberos.getPersonal();
            IResponsable bombero4 = cuartel_de_bomberos.getPersonal();

            IResponsable medico  = hospital.getPersonal();
            IResponsable medico2 = hospital.getPersonal();
            IResponsable medico3 = hospital.getPersonal();
            IResponsable medico4 = hospital.getPersonal();

            IResponsable policia  = comisaria.getPersonal();
            IResponsable policia2 = comisaria.getPersonal();
            IResponsable policia3 = comisaria.getPersonal();
            IResponsable policia4 = comisaria.getPersonal();
        }
        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;
        }