sábado, enero 06, 2007

El patrón Decorator y una aplicación real

Este post está directamente relacionado con el anterior. Yo sabía que no todos lo iban a entender o que les iba a gustar. Fue así como el único comentario prácticamente me quería boxear (pero con onda). Por cierto, recomiendo su blog. Lo bueno de todo esto es que todos los días se aprende algo nuevo. Del comentario, surgieron otros frameworks, de los cuales me gustó la propuesta de la empresa Open Symphony, SiteMesh.

Este framework implementa el patrón Decorator de la GangOfFour. Este patrón dice (básicamente) que podríamos a partir de una salida estándar a un usuario, modificarla para adaptar esta salida a otros tipos de usuarios. Por ejemplo, en el caso de SiteMesh, teniendo como punto de partida una página HTML, podemos "transformarla" en otro tipo de salida (para imprimir, PDF, WML, etc.).

Para implementarlo utiliza una funcionalidad de los Servlets que siempre me ha gustado, pero que no he tenido la oportunidad de usar en algo serio: Los Filtros.
Los filtros son una funcionalidad en J2EE que nos permite implementar otro patrón (intercepting filter). Consiste en la posibilidad de realizar procesamiento de una o más peticiones antes y después de ejecutar un servlet determinado.
De esta manera, cuando un servlet/jsp genera una salida HTML, teniendo configurado SiteMesh (no más de 5 minutos), más uno o más archivos decoradores, es posible que la salida generada se adapte al usuario.

Lo mejor de SiteMesh es que no lleva más de 1 hora / hora y media de lectura para aprenderlo. Muy positivo.

Saludos PF

4 Comments:

At 12:46 a. m., Blogger Pablo Frias said...

Ok, rectificado

 
At 4:21 a. m., Anonymous Anónimo said...

Vamos a ver... he entendido que este patrón Decorator funciona con Filters, interceptando la salida según los usuarios, y ofreciendo los contenidos en varios formatos...

No es acaso lo mismo que tener definidas X hojas de estilo, y que cada usuario escoja el formato que más le convenga?...

Es decir, si la única ventaja que vamos a darle es para formatear la salida, creo que lo de las css es más apropiado... a no ser que el servlet haga algo más en función de cada usuario, entonces no he dicho nada...

Es sólo una pregunta, gracias.

 
At 3:02 p. m., Blogger Pablo Frias said...

En realidad, esto se parece más a XSLT. No solo sirve para cambiarle la apariencia a la página, sino que también podríamos generar otros tipos de documentos, como PDF o documentos para otras tecnologías, como por ejemplo celulares.

Otra aplicación sería: Generalmente tenemos en archivos separados el encabezado, menu y pie de nuestro sitio, una opción es incluirlo en cada una de las páginas que vamos a mostrar, con SiteMesh, directamente podemos concentrarnos en los formularios que queremos mostrar y delegar la responsabilidad de agregar encabez, menu y pie a Sitemesh.

Saludos

 
At 1:35 p. m., Blogger Francisco said...

Hola.

La verdad me parece muy interesante lo que dices de este framework y me gustaria saber mas a cerca de esto
tienes alguna dir en donde encuentre ducumentacion sobre el tema. te agradezco de antemano
mi blog, soy nuevo en esto pero ahi vamos http://fsistemas.blogspot.com/

 

Publicar un comentario

<< Home