Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de software.Es decir, que brindan una solución ya probada y documentada a problemas de desarrollo de software que están sujetos a contextos similares. Debemos tener presente los siguientes elementos de un patrón: su nombre, el problema (cuando aplicar un patrón), la solución (descripción abstracta del problema) y las consecuencias (costos y beneficios).
Como se usan los patrones de diseño?
Usando conceptos básicos de POO: Abstracción, encapsulación, polimorfismo, herencia.
Encapsula lo que varia, Favorece la composición sobre la herencia. Programa las interfaces, no la implementación
Clasificación de Patrones
- Patrones arquitecturales
- Expresan un paradigma fundamental para estructurar un sistema software
- Proporcionan un conjunto de subsistemas predefinidos, con reglas y guías para organizar las relaciones entre ellos
- Patrones de diseño
- Compuestos de varias unidades arquitecturales más pequeñas
- Describen el esquema básico para estructurar subsistemas y componentes
- Patrones elementales (idioms)
- Específicos de un lenguaje de programación
- Describen cómo implementar componentes particulares de un patrón
Al diseñar software no debemos "reinventar la rueda", hay mucho trabajo ya realizado, testeado y aceptado en entornos similares, de la misma manera en que nosotros mismos podemos desarrollar algoritmos, los cuales nos serán útiles en casos posteriores si sabemos como encapsular nuestra información.
Bibliografía recomendada:
http://www.fdi.ucm.es/profesor/jpavon/poo/2.14pdoo.pdf