jueves, 31 de marzo de 2011

Patrones de Diseño

Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.

Los patrones de diseño pretenden:
  • 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.
Mencionare 2 ejemplos de patrones de diseño diferentes a los mencionados en clase:
Tipo: Creacional

Patron:
Abstract Factory (Fábrica abstracta): Permite trabajar con objetos de distintas familias de manera que las familias no se mezclen entre sí y haciendo transparente el tipo de familia concreta que se esté usando.

Problema: Debemos crear diferentes objetos, todos pertenecientes a la misma familia.

Aplicacion: Lo que intenta solucionar este patrón es el de crear diferentes familias de objetos.

Segundo patron:
Tipo: Estructural

Patron:
Decorator (Envoltorio): Añade funcionalidad a una clase dinámicamente.

Problema:
Supongamos que tenemos una clase existente Ventana y queremos añadirle funcionalidad para que muestre un borde alrededor. Podemos crear una subclase VentanaConBorde que herede de Ventana, pero supongamos que surge la necesidad de crear una ventana que muestre un pequeño botón de ayuda con un signo de interrogación (?) en su parte superior. Entonces tenemos las siguientes opciones:
  • Crear otra subclase de Ventana: VentanaConBotónDeAyuda.
Problema: No cubre la necesidad de tener ventanas con bordes y botón de ayuda a la vez.
  • Crear una subclase de VentanaConBorde: VentanaConBordeYBotonDeAyuda.
Problema: No tenemos una ventana con botón de ayuda y sin borde.
  • Crear clases para todas las combinaciones posibles de funcionalidades.
Problema: Con este ejemplo tendríamos cuatro clases: Ventana, VentanaConBorde, VentanaConBotonDeAyuda y VentanaConBordeYBotonDeAyuda; con tres funcionalidades tendríamos ocho clases y con cuatro, ¡dieciséis!

Aplicacion:
Este patron nos permite no tener que crear sucesivas clases que hereden de la primera incorporando la nueva funcionalidad, sino otras que la implementan y se asocian a la primera.

Fuentes:
http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o

No hay comentarios:

Publicar un comentario en la entrada