Oct 30 2008

Patrón Observador - Ejemplo en C# {

Tag: C#, Observador

El patrón observador define una relación de uno a muchos, en la que un objeto único, al que llamaremos observable deberá notificar cada vez que cambie de estado a muchos objetos, que llamaremos observadores.

El funcionamiento de este patrón de diseño puede compararse con el de una suscripción a una revista, ya que los observadores se suscriben y cada vez que la revista, (observable), se actualiza, la misma se envía a los observadores suscriptos.

La definición del patrón observador es la siguiente: define una dependencia entre objetos de uno a muchos, de manera tal que cuando un objeto cambia su estado, todos sus dependientes son notificados y actualizados automaticamente.

Para demostrar el uso de este patrón, se ha creado un ejemplo en el que tenemos un form principal que tiene 2 botones, uno para abrir múltiples instancias de observadores, que en nuestro caso serán forms que mostrarán un listado desde una fuente de datos, un archivo XML más concretamente; y otro botón para abrir nuestro simulador de edición, que no es más que un form que nos permitirá editar la fuente de datos y nos permitirá observar que cada vez que alteramos los datos nuestros observadores serán notificados y actualizados automáticamente.

Es importante destacar que para una correcta implementación del patrón se utilizan interfaces que definen el rol de una clase como Observable u Observador, con lo cual nos olvidamos, por ejemplo de cómo se comporta cada clase cuando es notificada de un cambio de estado.

Veamos el diagrama de clases y a continuación el enlace para descargar nuestra mini-aplicación que implementa el patrón observador en C#.

Ejemplo de Patrón Observador en C# (155.92 KB)

}


Oct 13 2008

Mover todos los archivos encontrados a un directorio en la consola de Linux {

Tag: Bash, Mini Tips

Hoy alguien me preguntaba como mover todos los archivos encontrados en uno o más directorios usando el comando find y tenía una idea de como hacerlo, pero no tenía una máquina con Linux para probarla, en realidad es algo muy simple, en este caso moveremos todas las fotos encontradas en /home/nuevosprogramadores y todos sus subdirectorios a una nueva ubicación en /home/nuevosprogramadores/fotos y lo haremos con una sola línea.

$ mv `find /home/nuevosprogramadores -iname *.jpg ` /home/nuevosprogramadores/fotos

Ahora vamos a identificar las partes de ésta línea, primero el comando mv que se encarga de mover ficheros:

$ mv origen destino


ahora el comando find, tal cual lo usamos:

$ find directorio-origen -iname nombre-archivo


Lo que hicimos fue concatenar ambos comandos, utilizando la salida del comando find como entrada del comando mv, para lo cual encerramos al comando find con las comillas simples: “ resumiendo, nuestro comando sería:

$ mv `find directorio-origen -iname nombre-archivo` destino

Una aclaración más, el parámetro iname se utiliza para buscar por nombre ignorando mayúsculas y minúsculas.

}


Oct 03 2008

Head First Design Patterns - Aprendiendo Patrones de Diseño {

Tag: Libros, Patrones

Me acaba de llegar el libro Head First Design Patterns, el segundo de la serie Head First de O’Reilly que tengo en mi poder, (el primero es Head First C#).

Vi este libro hace un tiempo y lo empecé a leer, después de leer el patrón estrategia, decidí que tenía que comprar este libro, por lo que de ahora en adelante postearé los conocimientos que vaya obteniendo acerca de Patrones de Diseño.

El libro trae ejemplos en Java, pero yo voy a intentar crear mis propios ejemplos y en más de un lenguaje!

Head First Design Patterns - O\'Reilly

}


Página 1 de 11