miércoles, 10 de noviembre de 2010

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.

Un patrón de diseño es una solución a un problema. Para que la solución sea considerada un patrón debe poseer 2 características que son:
  • EFECTIVIDAD: para saber si es efectivo aparte del problema planteado se debe resolver problemas parecidos.
  • REUSABLE: aplicable a diferentes problemas.
HISTORIA
En 1979, el arquitecto Christopher Alexander, definió que el patrón es una posible solución correcta para un problema de diseño dentro de un contexto dado.
Mas tarde para 1987, Ward Cunningham y Kent Beck usaron ideas de Alexander para desarrollar los patrones hombre-ordenador.
Hasta 1990 los patrones de diseño tuvieron éxito en el mundo de la informática.

OBJETIVOS
Los patrones pretenden:
  • Proporcionar varios elementos reusables en el diseño de software.
  • Formalizar un vocabulario común entre diseñadores.
  • Estandarizar el modo en que se realiza el diseño.
  • Facilitar el aprendizaje de los nuevos diseñadores.
CATEGORÍAS DE PATRONES
Manejan 5 tipos de categoría que son:
  • Patrones de Arquitectura-> expresan un esquema organizado estructural fundamental para sistemas de software.
  • Patrones de Diseño-> expresan esquemas para definir estructuras de diseño con los sistemas de software
  • Patrones de Dialectos->  patrones de bajo nivel específicos para un lenguaje de programacion.
  • Patrones de Interacción-> permiten el diseño de interfaces web.

PATRONES CREACIONALES
  • Abstract Factory:
Permite trabajar con objetos de distintas familias de manera que no se mezclen entre si y pudiendo ver en que familia trabajas. Ejemplo: las librerías para crear interfaces grafías suelen utilizar este patrón y cada familia seria un sistema operativo distinto.
  • Builder
Usado para crear una variedad de objetos complejos desde un objeto fuente.
  • Prototype
Crea nuevos objetos clonados de una ya existente.

PATRONES ESTRUCTURALES
  • Adapter
Se utiliza para transformar una interfaz en otra de tal modo que una clase que no pudiera utilizar la primera, haga uso de ella en la segunda. También es conocido como Wrapper.
  • Composite
Sirve para construir objetos complejos a partir de otros mas simples y similares entre si, gracias a a composición recursiva y la estructura forma de árbol.
  • Flyweight
Sirve para eliminar o reducir la redundancia cuando tenemos gran cantidad de objetos que contienen la misma información.

PATRONES DE COMPORTAMIENTO
  • Command
Permite solicitar una operación a un objeto sin conocer realmente el contenido de esta operación ni el receptor real de la misma.

  • State
Se utiliza cuando el comportamiento de un objeto cambia dependiendo del estado del mismo.
  • Visitor
Es una forma de separar el algoritmo de la estructura de un objeto.

Para mas información encontré este blog que habla mas específicamente de estos patrones de diseño, mas de ellos que no he mencionado.

Espero que les sirva:).

1 comentario: