Catálogo de Patrones de Diseño J2EE. I.- Capa de Presentación

Algunas personas definen un patr�n como una soluci�n recurrente para un problema en un contexto. Estos t�rminos -- contexto, problema y soluci�n -- merecen una peque�a explicaci�n. Primero, �qu� es un contexto? Un contexto es el entorno, situaci�n, o condiciones interrelacionadas dentro de las cuales existe algo. Seg�ndo, �qu� es un problema? Un problema es una cuesti�n insatisfecha, algo que se necesita investigar y resolver. Un problema se puede especificar mediante un conjunto de causas y efectos. Normalmenete un problema est� restringido al contexto en el que ocurre. Finalmente, la soluci�n se refiere a la respuesta al problema dentro de un contexto que ayuda a resolver las dificultades.

Entonces, si tenemos una soluci�n a un problema en un contexto, �es un patr�n? No necesariamente. Tambi�n necesitamos asociar la caracter�stica de recurrencia con la definici�n de un patr�n. �Eso es todo? Quiz�s no. Los patrones deber�an comunicar soluciones de dise�o a los desarrolladores y arquitectos que los leen y los utilizan. Como puedes ver, aunque el concepto de patr�n es bastante simple, definir realmente el t�rmino es muy complejo.

Hemos se�alado s�lo las referencias para que puedas indagar en m�s profundidad en la historia de los patrones y aprender sobre ellos en otras �reas. Sin embargo, deber�as tener en mente que la definici�n de patr�n que hemos adoptado funciona. En nuestro cat�logo, se describe un patr�n de acuerdo a sus principales caracter�sticas: contexto, problema y solucion, junto con otros aspectos importantes, como causas y consecuencias. La p�gina que describe la plantilla de patrones explica estas caracter�sticas en m�s detalle.

.�Abstracci�n de Patrones

Un patr�n describe, con alg�n nivel de abtrascci�n, una soluci�n experta a un problema. Normalmente, un patr�n est� documentado en forma de una plantilla. Aunque es una pr�ctica est�ndar documentar los patrones en un formato de plantilla especializado, esto no significa que sea la �nica forma de hacerlo. Adem�s, hay tantos formatos de plantillas como autores de patrones, esto permite la creatividad en la documentaci�n de patrones.

Los patrones solucionan problemas que existen en muchos niveles de abstracci�n. Hay patrones que describen soluciones para todo, desde el an�lisis hasta el dise�o y desde la arquitectura hasta la implementaci�n. Adem�s, los patrones existen en diversaa �reas de inter�s y tecnolog�as. Por ejemplo, hay un patr�n que describe como trabajar con un lenguaje de programaci�n espec�fico o un segmento de la industria espec�fico, como la sanidad.

.�Identificar un Patr�n

Se han manejado muchos proyectos J2EE en Sun Java Center, y, con el tiempo, se ha notado que ocurren problemas similares en todos estos proyectos. Tambi�n se ha visto que han emergido soluciones similares para todos estos problemas. Aunque las estrategias de implementaci�n variaran, las soluciones generales eran bastante similares.

Cuando se ha visto un problema y una soluci�n recurrentes, se ha intentado identificar y documentar sus caracter�sticas usando la plantilla de patr�n. Los candidatos a patrones no se han a�adido al cat�logo de patrones hasta que no se ha podido observar y documentar su utilizaci�n varias veces en diferentes proyectos. Tambi�n se emprendi� el procesamiento de significado de los patrones buscando patrones en soluciones ya implementadas.

Luego, hay una "Regla de Tres", como se la conoce en la comunidad de los patrones. Esta regla es una gui� para ascender un patr�n candidato al cat�logo de patrones. De acuerdo a esta regla, una soluci�n permanece como un patr�n candidato hasta que se ha verificado en al menos tres sistemas diferentes. Ciertamente que hay mucho espacio para la interpretaci�n en reglas como �sta, pero ayudan a proporcionar un contexto para la identificaci�n de patrones.

Muchas veces, soluciones similares podr�an representar un s�lo patr�n. Cuando se decide c�mo formar un patr�n, es importante considerar cual es la mejor forma de comunicar la soluci�n. Algunas veces, un nombre indenpendiente mejora la comunicaci�n entre los desarrolladores. Si es as�, es mejor considerar la documentaci�n de dos soluciones similares como dos patrones diferentes. Por otro lado, podr�a ser mejor comunicar la soluci�n destilando las ideas similares en una combinaci�n de patr�n/estrategia.

.�Patrones contra Estrategias

Cuando se empez� a documentar los patrones J2EE, se tom� la decisi�n de documentarlos con un nivel de abstracci�n relativamente alto. Al mismo tiempo, cada patr�n incluye varias estrategias que proporcionan detalles de su implementaci�n a bajo nivel. A trav�s de las estrategias, cada patr�n documenta una soluci�n con varios niveles de abstracci�n. Se ha reconocido que se podr�a haber documentado algunas de estas estrategias como patrones por s� mismas. Sin embargo, se ha cre�do que la estructura de plantilla actual comunica m�s claramente la relaci�n de las estrategias con la estructura de patr�n de alto nivel en que se ha incluido.

Se han anotado algunos de los problemas con respecto a la relaci�n entre las estrategias y los patrones:

  • Los patrones existen a un nivel de abstracci�n m�s alto que las estrategias.
  • Los patrones incluyen implementaciones m�s comunes o m�s recomendadas que las estrategias.
  • Las estrategias proporcionan un punto de extensibilidad para cada patr�n. Los desarrolladores descubren e inventan nuevas formas de implementar patrones, produciendo nuevas estrategias para patrones bien-conocidos.
  • Las estrategias promueven una mejor comunicaci�n, proporcionando nombres para aspectos de bajo nivel de una soluci�n particular.

.�El Cat�logo de Patrones J2EE (Core J2EE Patterns)

Abajo puedes ver una representaci�n gr�fica del Cat�logo de Patrones Principales de J2EE (Core J2EE Patterns):

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO