Patrones de diseño
Arquitecturas de Software
Marcelo Magaña
“Si los constructores hicieran las
casas de la misma forma en que los
programadores escriben código, el
primer pájaro carpintero que viniera
destruiría la civilización”
¿Por qué patrones?
Si quisieran construir una casa, ¿cómo lo
harían?
1. Buscar un árbol robusto
2. Conseguir madera, un martillo y clavos3. Aplicar los productos del paso 2 al paso 1
4. Esperar lo mejor
¿Por qué patrones?
Sería un mejor plan encontrar un
Arquitecto que elabore los planos
Ahora bien………
¿Cómo toma las decisiones el Arquitecto?
No es diferente en el mundo del desarrollo
de Software
¿Por qué patrones?
Necesitamos un gurú del desarrollo de Sw
◦ No hay muchos gurús enel mundo
◦ Tenemos que valernos por nosotros mismos
¿Habrá una forma de agrupar todo ese
conocimiento?
◦ Patrones de Diseño
¿Por qué patrones?
Soluciones bien documentadas
Solucionar nuevos problemas
Aplicadas con éxito en el pasado
Problemas similares
Adaptar la solución previa al contexto actual
Desarrollar una forma estandarizadapara
solucionar problemas comunes
¿Por qué patrones?
Christopher Alexander
◦ Catedrático de Arquitectura de U.C. Berkeley
◦ Diversos Libros – Concepto de Patrón
◦ Captó interés
Kent Beck – Ward Cunningham
◦ Conjunto de patrones de diseño para Smalltalk
◦ OOPSLA – 1987
James Coplien
◦ Expresiones Comunes en C++
◦ Patrones para el desarrollo en C++
Un poco deHistoria
Object-Oriented Programming, Systems,
Languages & Applications
◦ Conferencia anual de la ACM (Association for
Computing Machinery)
◦ Orlando, Florida
OOPSLA
Patrones de Diseño
◦ Erich Gamma, Richard Helm, Ralph Johnson y
John Vlissides
◦ “Gang of Four” o GoF
◦ Ejemplos en C++
Pattern-Oriented Software Architecture, A
Systems of Patterns
◦ Buschmann,Meunier, Rohnert, Somerland y
Stal
Un poco de Historia
Los Patrones de Diseño se basan en un
“Formulario” o “Formato”:
◦ Nombre: Descriptivo
◦ También conocido como: nombres alternativos
◦ Propiedades: Clasificación del Patrón, según
dos aspectos
Conceptos básicos
Patrones de Creación
◦ Creación de Objetos
Patrones de Comportamiento
◦ Interacción Funcional
Patrones Estructurales
◦ Relaciones estáticas y estructurales
Patrones de Sistema
◦ Interacción a nivel de Sistema
Tipo
Clase Única
◦ Aplica a una única clase
Componente
◦ Grupo de Clases
Arquitectónico
◦ Coordinar acciones de sistemas y subsistemas
Nivel
Los Patrones de Diseño se basan en un
“Formulario” o “Formato”:
◦ Propósito: breveexplicación de implicancias
◦ Presentación: Desc. De problema afrontable
◦ Aplicabilidad: Cuando y por qué
◦ Descripción: explicación detallada
Conceptos básicos
Los Patrones de Diseño se basan en un
“Formulario” o “Formato”:
◦ Implementación: qué debe hacerse para usarlo
◦ Ventajas e Inconvenientes:
◦ Variantes: implementaciones alternativas
◦ Patrones relacionados
◦Ejemplo: trozo de código
Conceptos básicos
Introducción
Abstract Factory
Builder
Factory Method
Prototype
Singleton
Patrones de Creación
Facilitan la tarea de Crear Objetos
Proporcionan:
◦ Instanciación Genérica
◦ Simplicidad
◦ Restricciones de Creación
Patrones de Creación
Crear Objetos sin identificar una claseespecífica
“Generics” en Java.
Palabra reservada “instanceof”
Instanciación Genérica
Facilitan la creación de Objetos
No es necesario escribir grandes y
complejos códigos
Simplicidad
Algunos patrones fuerzan ciertas
restricciones
◦ Tipo de Objetos
◦ Número de Objetos
Restricciones de Creación
También conocido como:
◦ Kit
◦ Toolkit...
Regístrate para leer el documento completo.