patrones de diseño en poo
DESCRIPTION
Una presentación para explicar algunos patrones de diseño utilizados en programación orientada a objetos.TRANSCRIPT
![Page 1: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/1.jpg)
Patrones de Diseño en POOCarlos Nacianceno
El Taller Web
![Page 2: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/2.jpg)
El Taller Web
• Partners de Zend Technologies o Productoso Entrenamientoo Consultoríao Soporte
El Taller Web
![Page 3: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/3.jpg)
Agenda
• Qué es un patrón de diseño?• Y qué no es!
• Tipos de Patrones de diseño• Algunos Patrones de diseño• Preguntas
Agenda
![Page 4: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/4.jpg)
Patrones de diseño
![Page 5: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/5.jpg)
¿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
![Page 6: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/6.jpg)
¿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
![Page 7: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/7.jpg)
Tipos de Patrones de diseño
• Estructurales
• Creacionales
• De comportamiento
• Concurrencia
Patrones de diseño
![Page 8: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/8.jpg)
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
![Page 9: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/9.jpg)
Singleton
• Necesitamos solo una instancia del objeto.
• Nos dá un acceso global y único a esa instancia
Patrones de diseño
![Page 10: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/10.jpg)
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
![Page 11: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/11.jpg)
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
![Page 12: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/12.jpg)
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
![Page 13: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/13.jpg)
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
![Page 14: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/14.jpg)
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
![Page 15: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/15.jpg)
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
![Page 16: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/16.jpg)
Service Layer
• Definir las capacidades de una aplicación
• Establece el conjunto de las operaciones disponibles, sus respuestas e interacciones
Patrones de diseño
![Page 17: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/17.jpg)
Martin Fowler
Patterns of Enterprise Application Architecture
http://www.martinfowler.com/eaaCatalog/
![Page 18: Patrones de diseño en POO](https://reader036.vdocuments.co/reader036/viewer/2022082503/557ae3dbd8b42a85648b53fa/html5/thumbnails/18.jpg)
¿Preguntas?