/// <summary> /// Muestra cualquier elemento del sistema sparrow en formato /// extendido usando inyeccion de dependencias. /// </summary> /// <param name="elemento">Elemento del sistema sparrow.</param> public void MostrarSistemaSparrow(IElementoSistema elemento) { IKernel injectorExtGallega = new StandardKernel(new InyeccionExtendidaGallega()); IKernel injectorExtCatalana = new StandardKernel(new InyeccionExtendidaCatalana()); IKernel injectorBasica = new StandardKernel(new InyecccionBasica()); IKernel injectorEstandar = new StandardKernel(new InyeccionEstandar()); Impresora impresoraEstandar = injectorEstandar.Get <Impresora>(); Impresora impresoraBasica = injectorBasica.Get <Impresora>(); Impresora impresoraExtGallega = injectorExtGallega.Get <Impresora>(); Impresora impresoraExtCatalana = injectorExtCatalana.Get <Impresora>(); Console.Out.WriteLine("======= Sparrow Viewer ======="); Console.Out.WriteLine(); Console.Out.WriteLine("======= Impresoras ======="); Console.Out.WriteLine(); Console.Out.WriteLine("Estandar (Castellano): \n" + elemento.Accept(impresoraEstandar)); Console.Out.WriteLine(); Console.Out.WriteLine("Extendida Catalana (Internacional Catalan): \n" + elemento.Accept(impresoraExtCatalana)); Console.Out.WriteLine(); Console.Out.WriteLine("Basica (Internacional Gallego): \n" + elemento.Accept(impresoraBasica)); Console.Out.WriteLine(); Console.Out.WriteLine("Extendida Gallega (Internacional Gallega): \n" + elemento.Accept(impresoraExtGallega)); Console.Out.WriteLine(); Console.Out.WriteLine("=============================="); } // MostrarSistemaSparrow
static void Main(string[] args) { // Creamos varias fotos Archivo foto1 = new Archivo("Lasaña.jpg", 2); Archivo foto2 = new Archivo("LAsaña.jpg", 2); Archivo foto3 = new Archivo("LASaña.jpg", 2); Archivo foto4 = new Archivo("LASAña.jpg", 2); Archivo foto5 = new Archivo("LASAñaa.jpg", 2); Archivo foto6 = new Archivo("LASAñA.jpg", 2); Archivo foto7 = new Archivo("LAsañA.jpg", 2); Archivo foto8 = new Archivo("laSAña.jpg", 2); // Creamos varios archivos comprimidos ArchivoComprimido comprimido1 = new ArchivoComprimido("Paté.zip"); ArchivoComprimido comprimido2 = new ArchivoComprimido("Maíz.zip"); ArchivoComprimido comprimido3 = new ArchivoComprimido("Vermú.zip"); // Creamos varios directorios Directorio directorio1 = new Directorio("Lasañá"); Directorio directorio2 = new Directorio("Lasañé"); Directorio directorio3 = new Directorio("Lasañí"); Directorio directorio4 = new Directorio("Lasañó"); Directorio directorio5 = new Directorio("Lasañú"); Directorio directorio6 = new Directorio("Leseñé"); Directorio directorio7 = new Directorio("Lusuñú"); // Creamos varios enlaces EnlaceDir enlace1 = new EnlaceDir(directorio2); EnlaceDir enlace2 = new EnlaceDir(foto1); EnlaceDir enlace3 = new EnlaceDir(comprimido1); // Anhadimos los elementos siguiendo el esquema de practicas // anteriores comprimido3.AnhadeElemento(foto7); comprimido2.AnhadeElemento(comprimido3); comprimido2.AnhadeElemento(foto8); directorio7.AnhadeElemento(foto5); directorio7.AnhadeElemento(foto6); directorio7.AnhadeElemento(comprimido2); directorio6.AnhadeElemento(foto4); directorio6.AnhadeElemento(enlace3); directorio6.AnhadeElemento(enlace1); directorio6.AnhadeElemento(directorio7); comprimido1.AnhadeElemento(directorio5); comprimido1.AnhadeElemento(foto3); comprimido1.AnhadeElemento(enlace2); directorio4.AnhadeElemento(foto2); directorio4.AnhadeElemento(enlace2); directorio4.AnhadeElemento(comprimido1); directorio3.AnhadeElemento(foto1); directorio1.AnhadeElemento(directorio2); directorio1.AnhadeElemento(directorio3); directorio1.AnhadeElemento(directorio4); directorio1.AnhadeElemento(directorio6); // Creamos un SparrowView y varias factorias para visualizar el // resultado de las diferentes estrategias, SparrowView sv = new SparrowView(); // Visualizamos el resultado de la factoria extendida gallega // Se corresponde con el punto 4 IFactoriaEstrategia factoriaExtGallega = FactoriaExtendidaGallega.GetInstance(); Estrategia visualizacionExtGallega = factoriaExtGallega.CrearVisualizacionEstrategia(); Impresora impresoraExtGallega = factoriaExtGallega.CrearImpresora(visualizacionExtGallega); Console.Out.WriteLine("------Extendida Gallega-------"); Console.Out.Write(impresoraExtGallega.ImprimirDirectorio(directorio1)); Console.Out.WriteLine("------------------------------------\n"); // Visualizamos el resultado de la factoria abierta // Se corresponde con el punto 8 IFactoriaEstrategia factoriaAbierta = FactoriaAbierta.GetInstance(); Estrategia visualizacionAbierta = factoriaAbierta.CrearVisualizacionEstrategia(); Impresora impresoraAbierta = factoriaAbierta.CrearImpresora(visualizacionAbierta); Console.Out.WriteLine("------Abierta-------"); Console.Out.Write(impresoraAbierta.ImprimirDirectorio(directorio1)); Console.Out.WriteLine("------------------------------------\n"); // Visualizamos el resultado del SparrowView sv.MostrarSistemaSparrow(directorio1); } // Main
}// ObtenerElementos /// <summary> /// Metodo que retorna el String que contiene la impresion del archivo /// </summary> /// <param name="impresora"> impresora concreta para imprimir el archivo </param> /// <returns> impresion del archivo </returns> public override String Accept(Impresora impresora) { return(impresora.ImprimirArchivoComprimido(this)); } // Accept
}// ObtenerElementos /// <summary> /// Metodo que retorna el String que contiene la impresion del archivo /// </summary> /// <param name="impresora"> impresora concreta para imprimir el archivo </param> /// <returns> impresion del archivo </returns> public override String Accept(Impresora impresora) { return(impresora.ImprimirDirectorio(this)); } // Accept
} // TotalArchivos /// <summary> /// Metodo que retorna el String que contiene la impresion del archivo /// </summary> /// <param name="impresora"> impresora concreta para imprimir el archivo </param> /// <returns> impresion del archivo </returns> public String Accept(Impresora impresora) { return(impresora.ImprimirArchivo(this)); } // Accept
}// EliminaElemento /// <summary> /// Metodo que retorna el String que contiene la impresion del elemento /// </summary> /// <param name="impresora"> impresora concreta para imprimir el elemento </param> /// <returns> impresion del elemento </returns> public abstract string Accept(Impresora impresora);
} // TotalArchivos /// <summary> /// Metodo que retorna el String que contiene la impresion del enlace /// </summary> /// <param name="impresora"> impresora concreta para imprimir el enlace </param> /// <returns> impresion del archivo </returns> public String Accept(Impresora impresora) { return(impresora.ImprimirEnlace(this)); } // Accept