1. Lenguajes y Modelos de
Programación
Introducción a los patrones de
diseño
Jesús Andrés Hincapié Londoño
2. Presentación del curso
Los objetivos de este curso son
• Explicar los principios de la Programación Orientada a
Objetos.
• Identificar los elementos de un patrón de diseño.
• Reconocer la necesidad de buenas soluciones.
• Analizar problemas de diseño.
• Construir soluciones que implementen patrones.
3. ¿Qué es un patrón?
“Cada patrón describe un problema que ocurre infinidad
de veces en nuestro entorno, así como la solución al
mismo, de tal modo que podemos utilizar esta solución
un millón de veces más adelante sin tener que volver a
pensarla otra vez.”
Christopher Alexander - 1979
Imagen publicada en http://www.flickr.com/photos/eekim/5686194142/
Por eekim
4. ¿Qué es un patrón de diseño software?
Soluciones
probadas
Buenas prácticas
Diseño de
software
en en
Un patrón de diseño de software describe un problema
recurrente que surge en contextos específicos de software,
y presenta un esquema genérico probado para la solución
de éste.
5. El cambio en el software
La única cosa que siempre va a estar presente en el
desarrollo de software es
El Cambio
Para administrar el cambio en el software, se requieren
sistemas
• Flexibles
• Reutilizables
• Extensibles
Atributos de calidad
6. Catálogos de patrones
Existen varios catálogos que recopilan patrones que se
usan en diferentes etapas del desarrollo de software.
En este sentido, se pueden encontrar:
• Patrones de análisis
• Patrones de diseño e implementación
• Patrones de pruebas
• Patrones arquitectónicos
7. Catálogos de patrones de diseño
Entre los catálogos de patrones de diseño, el más
reconocido es el catálogo de patrones GOF (Gang of
Four), el cual fue publicado en el libro Design Patterns
en 1995 y es el principal referente en el tema de
patrones.
Integrantes
• Ralph Johnson
• Erich Gamma
• Richard Helm
• John Vlissides
Imagen publicada en http://takeji-soft.seesaa.net/article/34433484.html
Por autor desconocido
8. Patrones GOF
El catálogo GOF está dividido en tres categorías
Creación
Herencia
Composición
Factory Method Adapter Interpreter
Template Method
Abstract Factory
Builder
Prototype
Singleton
Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Chain of Responsibility
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Visitor
Estructural Comportamiento
Propósito
Ámbito