//********************************************************************************************************************* //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); }
//********************************************************************************************************************* 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); }
//********************************************************************************************************************* public static void pruebaPatronBuilder() { //CONSTRUCTOR CONCRETO DESFAVORABLE DE BUILDER ConstructorDesfaborable constructor1 = new ConstructorDesfaborable(); constructor1.setCantidadPersonas(5); constructor1.setTemperatura(40); constructor1.setViento(90); //CONSTRUCTOR CONCRETO FAVORABLE DE BUILDER ConstructorFavorable constructor2 = new ConstructorFavorable(); constructor2.setIntLluvia(15); //CONSTRUCTOR CONCRETO MIXTO DE BUILDER ConstructorMixto constructor3 = new ConstructorMixto(); constructor3.setLluvia(15); //CONSTRUCTOR CONCRETO SIMPLE ConstructorSimple constructor4 = new ConstructorSimple(); //ASIGNANADO UN CONSTRUCTOR CONCRETO Y UN DIRECTOR A CADA INSTANCIA DE PLAZA Plaza objPlaza1 = new Plaza(constructor1); objPlaza1.SetSuperficieMetrosCuadrados(9); Plaza objPlaza2 = new Plaza(constructor2); objPlaza2.SetSuperficieMetrosCuadrados(9); Plaza objPlaza3 = new Plaza(constructor3); objPlaza3.SetSuperficieMetrosCuadrados(9); Plaza objPlaza4 = new Plaza(constructor4); objPlaza4.SetSuperficieMetrosCuadrados(9); //INSTANCIA DE CALLE CON SU CAUDAL DE AGUA DISPONIBLE Calle objCalle = new Calle(50); //INSTANCIA DE BOMBERO, SETEANDOLE UNA ESTRATEGIA DE APAGADO Bombero objBombero = new Bombero(new Secuencial()); Console.WriteLine("APAGANDO INCENDIO CON CIRCUNSTANCIAS DESFABORABLES"); objBombero.ApagarIncendio(objPlaza1, objCalle); Console.WriteLine(); Console.WriteLine("APAGANDO INCENDIO CON CIRCUNSTANCIAS FABORABLES"); objBombero.ApagarIncendio(objPlaza2, objCalle); Console.WriteLine(); Console.WriteLine("APAGANDO INCENDIO CON CIRCUNSTANCIAS MIXTAS"); objBombero.ApagarIncendio(objPlaza3, objCalle); Console.WriteLine(); Console.WriteLine("APAGANDO INCENDIO CON CIRCUNSTANCIAS NORMALES"); objBombero.ApagarIncendio(objPlaza4, objCalle); Console.WriteLine(); }