Para programación OO: "Es una solución probada que se puede aplicar con éxito
a un determinado tipo de problemas que aparecen repetidamente en el
desarrollo de sistemas de software.
Brad Appleton: "Es un pedazo de información con nombre,instructivo y
significante, que captura la esencia de una familia exitosa y complete
de soluciones a un problema recurrente en un context dado.
TIPOS
Existen varios tipos de patrones, dependiendo del
nivel de abstracción, del contexto en particular o
etapa sen proceso de desarrollo.
DE ARQUTECTURA
Son esquemas fundamentals de organización de un Sistema de Software.
Especifican una serie de subsistemas y sus responsabilidades respectivas.
Incluyen reglas y criterios para organizer las relaciones existentes entre ellos.
Algunos patrones de esta categoría son:
DEL CAOS A LA ORGANIZACION
niveles, tuberias y filtros, pizarra.
SISTEMAS DISTRIBUIDOS
Intermediario o broker
Sistemas interactivos
MVCI Modelo - Vista- Contolador
PAC: Presentacion, Abstracción, Control
SISTEMAS ACEPTABLES
Microkernel, Reflexion
DE DISENO
Son patrones de un nivel de abstracción menor que los patrones de arquitectura.
Están más próximos al codigo fuente final.
Soluciones a problemas detallados de diseño de software.
Provee un esquema para refinar los elementos de un Sistema de software o las relacines entre ellos.
Describe una estructura recurrente de elementos de diseño interconectados que soluciona un problema general de diseño detro de un context.
SE DIVIDEN EN TRES GRUPOS
PATRONES DE CREACION
PATRONES ESTRUCTURALES
PATRONES FUNCIONALES
DE IDIOMAS
Soluciones utiles para problemas específicos en algún lenguaje de programación.
Describe como implementar aspectos particulares de elementos o de las
relaciones entre ellos usando las características de un lenguaje particular.
DE ANALISIS
Son modelos de dominios parciales creados por expertos.
EStán mas orientados a la fase de análisis y toma de requerimientos.
DE ESTILO
Son soluciones de diseño de bajo nivel orietadas a la implementación o al lenguje de
programación,describen como implementar ciertos aspecos de un problema utilizando
las característics y facilidades de un lenguaje de programación dado.