Esempio n. 1
0
        //*********************************************************************************************************************

        //EN ESTA PRUEBA HAY VARIOS PATRONES QUE TRABAJAN EN CONJUNTAMENTE : BUILDER, FACTORY METHOD, DECORATOR, STRATEGY
        public static void pruebaPatronDecoratorYFactoryMethod()
        {
            //PRUEBA DE PATRON DECORATOR EN CONJUNTO CON EL PATRON FACTORY METHOD, AL MOMENTO DE ASIGNAR SECTORES EN LA MATRIZ, SE EVALUA SI PUEDE TENER DECORADOS

            IEstrategy estrategia = new Escalera();
            Bombero    objBombero = new Bombero(estrategia);

            //CALLE CON CAUDAL DE AGUA PARA APAGAR EL INCENDIO
            Calle objCalle = new Calle();

            //EN LA CLASE PLAZA, SE ENCARGA DE CREAR UNA MATRIZ DE SECTORES Y DECORARLOS SEGUN SU PROBABILIDAD

            ConstructorDesfaborable objConstructor = new ConstructorDesfaborable();

            objConstructor.setTemperatura(30);
            objConstructor.setViento(50);
            objConstructor.setCantidadPersonas(20);

            //PASANDOLE EL CONSTRUCTOR CONCRETO DEL PATRON BUILDER
            Plaza objPlaza = new Plaza(objConstructor);

            objPlaza.SetSuperficieMetrosCuadrados(9);
            objCalle.SetCaudalAguaPorMinuto(50);

            //SE LLAMA AL METODO APAGARINCENDIO() DEL BOMBERO Y SE LE PASA POR PARAMETRO LA CALLE Y EL LUGAR
            objBombero.ApagarIncendio(objPlaza, objCalle);
        }
Esempio n. 2
0
        //*********************************************************************************************************************
        public static void pruebaPatronStrategy()
        {
            //ESTRATEGIA DE APAGADO DE INCENDIO (PUEDEN SER APAGADO POR ESCALERA - SECUENCIAL - ESPIRAL)
            IEstrategy estrategia = new Escalera();
            //SE LA PASA POR PARAMETRO AL CONSTRUCTOR DE LA CLASE BOMBERO LA ESTRATEGIA
            Bombero objBombero = new Bombero(estrategia);

            //SE CREAN LAS INSTANCIAS DE UNA CALLE Y DE UN LUGAR

            Plaza objPlaza = new Plaza(new ConstructorSimple());

            //SE SETEA EL CAUDAL DE AGUA
            objPlaza.SetSuperficieMetrosCuadrados(16);


            Calle objCalle = new Calle();

            objCalle.SetCaudalAguaPorMinuto(50);

            //SE LLAMA AL METODO APAGARINCENDIO() DEL BOMBERO Y SE LE PASA POR PARAMETRO LA CALLE Y EL LUGAR
            objBombero.ApagarIncendio(objPlaza, objCalle);
        }
Esempio n. 3
0
        //*********************************************************************************************************************
        public static void pruebaPatronObserver()
        {
            //INSTANCIA DE BOMBERO QUE SERA AGREGADO COMO OBSERVADOR DE LAS PLAZAS Y CASAS
            Bombero objBombero1 = new Bombero(new Espiral());

            //INSTANCIA DE CALLE EN COMUN A TODOS LOS LUGARES (PLAZA Y CASAS)
            Calle objCalle = new Calle();

            //SE SETEA EL CAUDAL DE AGUA
            objCalle.SetCaudalAguaPorMinuto(50);


            //INSTANCIAS DE PLAZA Y CASAS
            Plaza objPlaza = new Plaza(objCalle, 4, new ConstructorSimple());
            Casa  objCasa1 = new Casa(objCalle, 9);
            Casa  objCasa2 = new Casa(objCalle, 9);
            Casa  objCasa3 = new Casa(objCalle, 9);
            Casa  objCasa4 = new Casa(objCalle, 9);
            Casa  objCasa5 = new Casa(objCalle, 9);

            //AGREGANDO BOMBERO OBSERVADOR A LA PLAZA
            objPlaza.AgregarObservador(objBombero1);
            //AGREGANDO BOMBERO OBSERVADOR A LAS CASAS Y CAMBIO DE ESTRATEGIA DE APAGADO DE INCENDIO A ESCALERA
            objBombero1.setEstrategia(new Escalera());
            objCasa1.AgregarObservador(objBombero1);
            objCasa2.AgregarObservador(objBombero1);
            objCasa3.AgregarObservador(objBombero1);
            objCasa4.AgregarObservador(objBombero1);
            objCasa5.AgregarObservador(objBombero1);

            //CAMBIO DE ESTADO EN LA PLAZA Y CASAS (SUENA LA ALARMA), NOTIFICA AL BOMBERO OBSERVADOR PARA QUE APAGUE EL INCENDIO
            objPlaza.Chispa();
            objCasa1.Chispa();
            objCasa2.Chispa();
            objCasa3.Chispa();
            objCasa4.Chispa();
            objCasa5.Chispa();
        }