Por ejemplo, en una fábrica se pueden producir diferentes tipos de artículos, por ejemplo, un jabón. El producto puede ir desde un jabón neutro, hasta uno aromatizado. Para todos se sigue un patrón el cual varía solamente al final, cuando se generan productos concretos desde un producto base. Entonces, se puede decir que el patrón es toda la línea de producción, ya que es un proceso recurrente que tiene como resultado uno o varios productos.
El mundo del software no es la excepción, existen problemas recurrentes a los cuales puede aplicarse un patrón, dichos patrones reciben el nombre de Patrón de Diseño.
"Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de software. Son una descripción de clases y objetos comunicándose entre sí adaptada para resolver un problema de diseño general en un contexto particular."
Los patrones nos brindan soluciones (probadas) a problemas en el desarrollo de software los cuales están sujetos a contextos similares. Por ejemplo, un software de llenado se formas, recibos, facturas, cheques, etcétera, todos pueden tener una finalidad diferente, pero todos tienen un patrón parecido para el llenado de información por lo que su codificación puede ser parecida o la misma; a todos los anteriores se les puede aplicar un patrón de diseño igual.
Existen tres clases de patrones de diseño:
- De creación: conciernen al proceso de creación de objetos.
- De estructura: tratan la composición de clases y/o objetos.
- De comportamiento: caracterizan las formas en las que interactúan y reparten responsabilidades las distintas clases u objetos.
Algunas de las ventajas de usar patrones de diseño son:
Indican cómo resolver un problema particular utilizando un pequeño número de clases relacionadas de forma determinada, pero no indican cómo diseñar un sistema completo, sino sólo aspectos puntuales del mismo.
Facilitan la re utilización de las clases y del propio diseño.
La propia estructura del patrón es reutilizada cada vez que se aplica.
A pesar de ser muy útiles, rara vez se nota su efecto sobre el código y es casi imposible saber que patrón fue utilizado en su desarrollo. También suele ser necesario programas más clases que las necesarias y se produce una sobrecarga en el código
En mi proyecto
Singleton
El singleton es un patron muy comun ya que al momento de utilizar el programa solo estas realizando un proceso.
Diagrama del Singleton
Composite
Este patron me sirve porque funciona como un arbol entre los objetos.
Este patrón se usa cuando los objetos tienen cierta jerarquía en el código y cuando ciertas operaciones se realizan en uno o varios objetos.
un ejemplo del diagrama
Iterator
Bueno este patron se puede usar como un lista.. yo lo entiendo que lo puedo aplicar en la rentas porque el socio puede llevarse varias peliculas.
Bueno esta entrada fue muy complicada por tener que interpretar los patrones. Espero no averme equivocado y si aun puedo usar patrones seria de gran ayuda sus comentarios..
http://es.wikipedia.org/wiki/Patrón_de_diseño
http://es.wikipedia.org/wiki/Iterador_(patrón_de_diseño)
http://es.wikipedia.org/.../Composite_(patrón_de_diseño)
http://es.wikipedia.org/wiki/Singleton
Saludos :p