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ñoLo 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 ocupan de cómo se utilizan clases y objetos para componer estructuras de mayor tamañoLo 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,...)
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