"Cada patrón describe un problema que ocurre una y otra
vez en nuestro ambiente, y luego describe el nucleo de su
solución en forma tal que es posible usarla un millón de
veces sin elaborarla dos veces de ma misma forma"
Christopher Alexander
PATRÓN DE DISEÑO
PROBLEMA
FUERZAS
Restringen la forma
en la que se puede
desarrollar el diseño
Sirven para definir mejor el
problema
Requerimientos
Limitaciones
Restricciones
CONTEXTO
Ambiente en el
que reside el
problema
SOLUCIÓN
Es elegida teniendo en cuenta el
contexto y es la que satisface mejor
el sistema de fuerzas
Tienes consecuencias que
afectan otros aspectos del
software y se vuelven parte
del sistema de fuerzas de
otros problemas por resolver
SE CARACTERIZA POR
Resuelve Problemas
Es un concepto probado
La solución no es obvia
Describe una relación
Minimiza la intervención humana
CLASES DE PATRONES
CREACIONALES
Se centran en la creación, composición y
representación de objetos
ESTRUCTURALES
Se centran en problemas y soluciones
asociados con la menra en la que se organizan
e integran las clases y objetos para construir
una estructura más grande
CONDUCTUALES
Se enfocan a problemas asociados con la
asignación de responsabilidad entre objetos y a la
manera en la que se efectúa la comunicación
entre ellos
PATRONES
Generativos
Arquitectónicos
De Datos
de Componentes
de Diseño de interfaz
Wepapps
DISEÑO DE UN PATRÓN
PLANTILLA
¿Por qué es importante?
Para compartir las soluciones a
problemas que se presentan en
todos los procesod de desarrollo
de software evitando "Reinventar
la rueda"
¿quién lo hace?
Un ingeniero de software quien
encuentra un problema y trata
de encontrar una solución
relevante , buscado en un
depósito de patrones
¿Cuáles son los pasos?
Primero se analiza el problema y los requerimientos que se
deben cumplir para encontrar una solución, luego se busca
en los repositorios de patrones uno que se adapte a las
características presentadas y se hace uso del mismo teniendo
en cuenta las condiciones y precauciones que el mismo posea.
¿Qué es?
Un conjunto de soluciones útiles, ciertas,
comprobadas , y organizadas en plantillas de
fácil entendimiento y acceso, compartidas
entre ingenieros desarrolladores para
minimizar tiempos de diseño y elaboración
para dar solución a problemas repetitivos.
¿cual es el producto final?
Se desarrolla un modelo del
diseño que ilustra la arquitectura
del software, la interfza del
usuario y los detalles en el nivel
de componentes.
ESTRUCTURAS
Miniarquitectura reutilizable que sirve
como base desde la que se pueden
aplicar otros patrones