5. ¿Qué es un patrón de diseño?
• Es una solución general reusable a un problema que
ocurre comunmente en un contexto dado en el
diseño de Software (wikipedia)
• Un arreglo de piezas de código que te resuelven un
problema
Patrones de diseño
6. ¿Qué no es un patrón de diseño?
• Una solución mágica
• Una solución de copy/paste
• Una implementación estándar
Patrones de diseño
7. Tipos de Patrones de diseño
• Estructurales
• Creacionales
• De comportamiento
• Concurrencia
Patrones de diseño
8. Tipos de Patrones (Martin Fowler)
• Base
• Estado de Sesión
• Distribución
• Presentación Web
• Lógica de Dominio
• Arquitectura de fuente de datos
• Objetos relacionales
• Estructurales
• De comportamiento
• Mapeo de Metadatos
Patrones de diseño
9. Singleton
• Necesitamos solo una instancia del objeto.
• Nos dá un acceso global y único a esa instancia
Patrones de diseño
10. Gateway
• Hay que acceder a diferentes objetos o recursos con
APIs diversos
• Gateway, encapsula el acceso a todos los recursos u
objetos en uno solo
Patrones de diseño
11. Registry
• No se tiene referencia para acceder a un Objeto o
servicio
• Un objeto bien conocido que se usa para buscar
objetos y servicios.
Patrones de diseño
12. Factory
• Queremos un objeto de un tipo específico pero se
define dinámicamente.
• Define una interfaz para crear objetos de acuerdo los
parámetros suministrados
Patrones de diseño
13. Observer
• Tienes un número indeterminado de objetos que
necesitan ser notificados cuando un estado cambie
• Define una dependencia de un objeto a muchos
objetos y cuando un estado cambia todos los
dependientes son notificados. Suscripción
Patrones de diseño
14. Data Mapper
• Representar datos de una fuente de persistencia en
objetos
• Una capa de mappers que mueve datos entre los
objetos y la BD, mientras son independientes entre sí
Patrones de diseño
15. Active Record
• Tratar a un registro de BD como un objeto
• Define un objeto que envuelve un registro en
BD,encapsulando su acceso y añadiendo
comportamiento.
Patrones de diseño
16. Service Layer
• Definir las capacidades de una aplicación
• Establece el conjunto de las operaciones
disponibles, sus respuestas e interacciones
Patrones de diseño
17. Martin Fowler
Patterns of Enterprise Application Architecture
http://www.martinfowler.com/eaaCatalog/