domingo, 7 de julio de 2013

PATRONES DE DISEÑO



PATRONES DE DISEÑO


Para definir un patrón se puede partir de la definición que Christopher Alexander hizo en su libro:

“Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para describir después el núcleo de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin hacerlo siquiera dos veces de la misma forma”

                                                                                               – Christopher Alexander


Un patrón de diseño se puede ver como una solución repetitiva y experta a problemas recurrentes, es decir, estrategias que se conocen desde un principio y se sabe qué tipo de problemas van a solucionar.


Una característica fundamental de los patrones de diseño es que surgen de la experiencia de la comunidad de programadores. De esta forma, los patrones son soluciones que se han probado en proyectos reales, y hay consenso sobre su utilidad.


Existen diferentes definiciones por cada autor, pero los patrones tienen algunas características identificadas como:

  • Los patrones son identificados a partir de la experiencia humana. 
  • Los patrones previenen reinventar la rueda. 
  • Los patrones existen en diferentes niveles de abstracción. 
  • Los patrones experimentan mejoras continuas y son elementos reutilizables. 
  • Los patrones hablan de diseño y buenas prácticas y se pueden usar varios a la vez para resolver grandes problemas. 

Al igual que otras disciplinas y ciencias, la ingeniería de software depende en gran parte del uso de patrones de diseño para garantizar rendimiento de los sistemas y eficiencia en el ciclo de desarrollo. Una de las metas de un arquitecto de software o desarrollador es saber abordar los problemas con las mejores herramientas de diseño y para esto es importante conocer los patrones y las técnicas.



CLASIFICACIÓN DE LOS PATRONES 



Patrones de creación


Abstraen la forma en la que se crean los objetos, permitiendo tratar las clases a crear de forma genérica, dejando para más tarde la decisión de qué clases crear o cómo crearlas.
Prototype, Singleton, Factory Method, Abstract Factory,...)



Patrones estructurales

Se ocupan de cómo se utilizan clases y objetos para componer estructuras de mayor tamaño
Lo fundamental son las relaciones de uso entre los objetos, y, éstas están determinadas por las interfaces que soportan los objetos. 

Estudian cómo se relacionan los objetos en tiempo de ejecución y sirven para diseñar las interconexiones entre los objetos.
(Composite, Proxy, Facade, Decorator, ...)



Patrones de comportamiento


Se refieren a los algoritmos y a la asignación de responsabilidades entre objetos.

Los patrones de comportamiento estudian las relaciones entre llamadas entre los diferentes objetos, normalmente ligados con la dimensión temporal.

(Chain of Responsability, State, Strategy, Visitor, Observer, Template Method, Memento,...)

No hay comentarios:

Publicar un comentario