8 de julio de 2013

PATRONES DE DISEÑO

INTRODUCCION

El objetivo del diseño de software es llegar a un producto de calidad. El diseño debe ser adecuado para la aplicación en particular, pero dicha solución también debe ser general para poder enfrentar distintos escenarios y evitar el rediseño. No es necesario partir desde cero.
Los patrones de diseño de software nacen en los 80’s con Kent Beck y Ward Cunningham, que discutían patrones para Smalltalk. La contribución más célebre es el libro “Patrones de Diseño”

¿QUE ES UN PATRON DE DISEÑO?

De acuerdo al arquitecto Christopher Alexander, “cada patrón de diseño describe un problema que ocurre una y otra vez en nuestro entorno, así como la solución a ese problema de tal modo que se pueda aplicar esta solución una y otra vez, sin repetir cada vez lo mismo”.

¿POR QUÉ UTILIZAR LOS PATRONES DE DISEÑO?

Su utilización y documentación permite a desarrolladores novatos beneficiarse de la experiencia de soluciones anteriores. Proporcionan un vocabulario común a los desarrolladores, mejorando la comunicación de soluciones entre ellos. Además al tener conocimiento sobre patrones, es posible obtener mejores diseños
·         Las soluciones con patrones resuelven problemas específicos hacen los diseños orientados a objetos más flexibles, elegantes y sobre todo reutilizables.

·         Facilitan la reutilización de diseños y arquitecturas de software que han tenido éxito.

·         Ayudan a comprender mejor un sistema cuando está documentado con los patrones que se utilizaron en su desarrollo.

·         Facilitan la reestructuración de un sistema. Y permite adaptarse más rápido y de mejor forma a las modificaciones que se dan en los sistemas durante un período de tiempo.

ELEMENTOS DE UN PATRON DE DISEÑO


En general un patrón tiene cuatro elementos esenciales:
   1)    El nombre del patrón: permite describir, en una o dos palabras, un problema de diseño con sus soluciones y consecuencias.
 2)    El problema: describe cuando aplicar el patrón. Explica el problema y su contexto.
    3)    La solución: describe los elementos que constituyen el diseño, sus relaciones, responsabilidades y colaboraciones. La solución no describe un diseño o una implementación en concreto, sino que un patrón es más bien como una plantilla que puede aplicarse en muchas situaciones diferentes.
4)    Las consecuencias: son los resultados así como las ventajas e inconvenientes de aplicar el patrón.

¿CÓMO SE CLASIFICAN LOS PATRONES DE DISEÑO?

Los patrones de diseño se clasifican de acuerdo a:
Su propósito:
·         Patrones de creación. Se refieren a la creación de instancias.
·         Patrones estructurales. Se refieren a las relaciones entre clases y/u objetos.
·         Patrones de comportamiento. Caracterizan la forma en que las clases u objetos interactúan y distribuyen sus responsabilidades (servicios).
Su ámbito:
·         Patrones de clases. Tratan con relaciones de herencia (estática) entre clases.
·         Patrones de objetos. Se refieren a relaciones de composición entre objetos, que pueden cambiar en tiempo de ejecución y son más dinámicas.



Creacionales
  • Creacional de la Clase
    Los patrones creacionales de Clases usan la herencia como un mecanismo para lograr la instanciación de la Clase. Por ejemplo el método Factoría.
  • Creacional del objeto
    Los patrones creacionales de objetos son más escalables y dinámicos comparados de los patrones creacionales de Clases. Por ejemplo la Factoría abstracta y el patrón Singleton.
Estructurales
  • Estructural de la Clase
    Los patrones estructurales de Clases usan la herencia para proporcionar interfaces más útiles combinando la funcionalidad de múltiples Clases. Por ejemplo el patrón Adaptador (Clase).
  • Estructural de Objetos
    Los patrones estructurales de objetos crean objetos complejos agregando objetos individuales para construir grandes estructuras. La composición de l patrón estructural del objeto puede ser cambiado en tiempo de ejecución, el cual nos da flexibilidad adicional sobre los patrones estructurales de Clases. Por ejemplo el Adaptador (Objeto), Facade, Bridge, Composite.
Comportamiento
  • Comportamiento de Clase
    Los patrones de comportamiento de Clases usan la herencia para distribuir el comportamiento entre Clases. Por ejemplo Interpreter.
  • Comportamiento de Objeto
    Los patrones de comportamiento de objetos nos permite analizar los patrones de comunicación entre objetos interconectados, como objetos incluidos en un objeto complejo. Ejemplo Iterator, Observer, Visitor.

A continuación se presentan los 13 patrones más utilizados para el desarrollo del software

No hay comentarios:

Publicar un comentario