Seguir a Miguel Gomez Cuesta en Twitter Seguir a Miguel Gomez Cuesta en Linkedin Seguir a Miguel Gomez Cuesta en Google+ Contactar a Miguel Gomez Cuesta por Correo Electrónico

viernes, 18 de marzo de 2016

Patrones de Diseño - Introducción

 Antes de nada te pedimos que participes en la encuesta "Patrones de diseño de software"


Introducción


Los patrones de diseño son una pieza fundamental en el desarrollo del software. Un patrón de diseño en software es un problema que ocurre una y otra vez en nuestro entorno y que puede resolverse repetidamente del mismo modo sin necesidad de implementar una solución diferente cada vez. Es decir, los patrones de diseño son soluciones exitosas y contrastadas a problemas comunes.


Un patrón de diseño tiene 4 elementos esenciales:

Elementos que forman un patrón de diseño


Nombre del patrón: Permite describir en pocas palabras un problema de diseño junto con sus soluciones y consecuencias. Tener un vocabulario de patrones nos permite diseñar con mayor abstracción y tener un lenguaje común para compartir, transmitir y documentar a otros compañeros de profesión. A su vez se pueden identificar fácilmente sus puntos fuertes y sus inconvenientes para decidir cuál es la mejor elección en cada caso.

Problema: Describe cuando se debe aplicar el patrón, explicando el problema y el contexto. En ocasiones el problema incluye una serie de requisitos que deben producirse para que tenga sentido aplicar el patrón.

Solución: Describe los elementos que constituyen, las relaciones, responsabilidades y colaboraciones entre ellos. El patrón proporciona una descripción abstracta de un problema de diseño y como se resuelve a través de una serie de elementos. En el caso de Java y los lenguajes de programación orientados a objetos, estos elementos serán los interfaces, clases y objetos.

Consecuencias: Son las ventajas e inconvenientes de aplicar el patrón. Son fundamentales para evaluar las alternativas de diseño y comprender los costes y beneficios de aplicar cada patrón. Incluyen entre otras el impacto sobre la flexibilidad, extensibilidad y potabilidad de un sistema.

Entradas populares