You are on page 1of 16

Patrones de Diseño

Pablo Cáceres F.
¿Qué son los patrones de diseño?
 Patrones de diseño o más comúnmente conocidos como
"Design Patterns“, son soluciones simples y elegantes a
problemas específicos y comunes del diseño orientado a
objetos.
 Son soluciones basadas en la experiencia y que se ha
demostrado que funcionan.
Patrones de Diseño
 Es evidente que a lo largo de multitud de diseños de
aplicaciones hay problemas que se repiten o que son
análogos, es decir, que responden a un cierto patrón
Objetivos de los patrones
 Proporcionar catálogos de elementos reusables en el diseño de
sistemas software.
 Evitar la reiteración en la búsqueda de soluciones a problemas ya
conocidos y solucionados anteriormente.
 Formalizar un vocabulario común entre diseñadores.
 Estandarizar el modo en que se realiza el diseño.
 Facilitar el aprendizaje de las nuevas generaciones de diseñadores
condensando conocimiento ya existente.

Asimismo, no pretenden:

 Imponer ciertas alternativas de diseño frente a otras.


 Eliminar la creatividad inherente al proceso de diseño.
Categorías de patrones
Según la escala o nivel de abstracción:

 Patrones de arquitectura: Aquéllos que expresan un


esquema organizativo estructural fundamental para
sistemas de software.
 Patrones de diseño: Aquéllos que expresan esquemas
para definir estructuras de diseño (o sus relaciones) con
las que construir sistemas de software.
 Dialectos: Patrones de bajo nivel específicos para un
lenguaje de programación o entorno concreto.
Estructuras o plantillas de patrones
 Nombre del patrón: nombre estándar del patrón por el cual será reconocido en la comunidad
(normalmente se expresan en inglés).
 Clasificación del patrón: creacional, estructural o de comportamiento.
 Intención: ¿Qué problema pretende resolver el patrón?
 También conocido como: Otros nombres de uso común para el patrón.
 Motivación: Escenario de ejemplo para la aplicación del patrón.
 Aplicabilidad: Usos comunes y criterios de aplicabilidad del patrón.
 Estructura: Diagramas de clases oportunos para describir las clases que intervienen en el patrón.
 Participantes: Enumeración y descripción de las entidades abstractas (y sus roles) que participan
en el patrón.
 Colaboraciones: Explicación de las interrelaciones que se dan entre los participantes.
 Consecuencias: Consecuencias positivas y negativas en el diseño derivadas de la aplicación del
patrón.
 Implementación: Técnicas o comentarios oportunos de cara a la implementación del patrón.
 Código de ejemplo: Código fuente ejemplo de implementación del patrón.
 Usos conocidos: Ejemplos de sistemas reales que usan el patrón.
 Patrones relacionados: Referencias cruzadas con otros patrones.
Catálogos de Patrones de Diseño
Los mas conocidos son:

 GOF (Gang of Four)

 Core J2EE Patterns


Core J2EE Patterns – Capa presentación
Front Controller/ Front Component
 Objeto que acepta todos los requerimientos de un cliente y
los direcciona a manejadores apropiados.
 El patrón Front Controller podría dividir la funcionalidad
en 2 diferentes objetos: el Front Controller y el
Dispatcher. En ese caso, El Front Controller acepta todos
los requerimientos de un cliente y realiza la autenticación,
y el Dispatcher direcciona los requerimientos a
manejadores apropiada.
View Helper
 Un objeto helper que encapsula la lógica de acceso a datos
en beneficio de los componentes de la presentación.
 Por ejemplo, los JavaBeans pueden ser usados como
patrón View Helper para las páginas JSP.
Composite view
 Un objeto vista que está compuesto de otros objetos vista.
Por ejemplo, una página JSP que incluye otras páginas
JSP y HTML usando la directiva include o el action
include es un patrón Composite View.
Service To Worker
 Es como el patrón de diseño MVC con el Controlador
actuando como Front Controller pero con una cosa
importante: aquí el Dispatcher (el cual es parte del Front
Controller) usa View Helpers a gran escala y ayuda en el
manejo de la vista.
Dispatcher View
 Es como el patrón de diseño MVC con el controlador
actuando como Front Controller pero con un asunto
importante: aquí el Dispatcher (el cual es parte del Front
Controller) no usa View Helpers y realiza muy poco
trabajo en el manejo de la vista. El manejo de la vista es
manejado por los mismos componentes de la Vista.
Gang Of Four (GoF)
 En el libro del GoF se propone unos principios fundamentales de
diseño subyacentes a los patrones de diseño que permiten crear
aplicaciones más flexibles y robustas:
 Programar para interfaces y no para una implementación.
 Favorecer la composición de objetos frente a la herencia de clases.
 Otros principios de gran importancia que se derivan de los
principios anteriores son los que se detallan a continuación:
 Determinar qué es común y qué es variable (commonality
analisys).
 Común = Estable
 Permitir el reemplazo de lo variable mediante una interfaz común.
Clasificación de patrones de diseño
 De Creación: Abstraen el proceso de creación de
instancias de objetos. Ayudan a hacer a un sistema
independiente de cómo se crean, se componen y se
representan sus objetos.
 Estructurales: Tratan con la composición de clases u
objetos. Se ocupan de cómo las clases y objetos son
utilizados para componer estructuras de mayor tamaño.
 De Comportamiento: Caracterizan el modo en que las
clases y objetos interactúan y se reparten la
responsabilidad. Atañen a los algoritmos y a la asignación
de responsabilidades entre objetos.

You might also like