Beispiel #1
0
        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();
        }
Beispiel #2
0
        //*********************************************************************************************************************

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