Your SlideShare is downloading. ×
0
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Introducción Patrones de Diseño
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introducción Patrones de Diseño

1,375

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,375
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
52
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Patrones de Diseño Pablo Cáceres F.
  • 2. ¿Qué son los patrones de diseño? <ul><li>Patrones de diseño o más comúnmente conocidos como &amp;quot; Design Patterns “, son soluciones simples y elegantes a problemas específicos y comunes del diseño orientado a objetos. </li></ul><ul><li>Son soluciones basadas en la experiencia y que se ha demostrado que funcionan. </li></ul>
  • 3. Patrones de Diseño <ul><li>Es evidente que a lo largo de multitud de diseños de aplicaciones hay problemas que se repiten o que son análogos, es decir, que responden a un cierto patrón </li></ul>
  • 4. Objetivos de los patrones <ul><li>Proporcionar catálogos de elementos reusables en el diseño de sistemas software. </li></ul><ul><li>Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y solucionados anteriormente. </li></ul><ul><li>Formalizar un vocabulario común entre diseñadores. </li></ul><ul><li>Estandarizar el modo en que se realiza el diseño. </li></ul><ul><li>Facilitar el aprendizaje de las nuevas generaciones de diseñadores condensando conocimiento ya existente. </li></ul><ul><li>Asimismo, no pretenden: </li></ul><ul><li>Imponer ciertas alternativas de diseño frente a otras. </li></ul><ul><li>Eliminar la creatividad inherente al proceso de diseño. </li></ul>
  • 5. Categorías de patrones <ul><li>Según la escala o nivel de abstracción: </li></ul><ul><li>Patrones de arquitectura : Aquéllos que expresan un esquema organizativo estructural fundamental para sistemas de software. </li></ul><ul><li>Patrones de diseño : Aquéllos que expresan esquemas para definir estructuras de diseño (o sus relaciones) con las que construir sistemas de software. </li></ul><ul><li>Dialectos : Patrones de bajo nivel específicos para un lenguaje de programación o entorno concreto. </li></ul>
  • 6. Estructuras o plantillas de patrones <ul><li>Nombre del patrón : nombre estándar del patrón por el cual será reconocido en la comunidad (normalmente se expresan en inglés). </li></ul><ul><li>Clasificación del patrón : creacional, estructural o de comportamiento. </li></ul><ul><li>Intención : ¿Qué problema pretende resolver el patrón? </li></ul><ul><li>También conocido como : Otros nombres de uso común para el patrón. </li></ul><ul><li>Motivación : Escenario de ejemplo para la aplicación del patrón. </li></ul><ul><li>Aplicabilidad : Usos comunes y criterios de aplicabilidad del patrón. </li></ul><ul><li>Estructura : Diagramas de clases oportunos para describir las clases que intervienen en el patrón. </li></ul><ul><li>Participantes : Enumeración y descripción de las entidades abstractas (y sus roles) que participan en el patrón. </li></ul><ul><li>Colaboraciones : Explicación de las interrelaciones que se dan entre los participantes. </li></ul><ul><li>Consecuencias : Consecuencias positivas y negativas en el diseño derivadas de la aplicación del patrón. </li></ul><ul><li>Implementación : Técnicas o comentarios oportunos de cara a la implementación del patrón. </li></ul><ul><li>Código de ejemplo : Código fuente ejemplo de implementación del patrón. </li></ul><ul><li>Usos conocidos : Ejemplos de sistemas reales que usan el patrón. </li></ul><ul><li>Patrones relacionados : Referencias cruzadas con otros patrones. </li></ul>
  • 7. Catálogos de Patrones de Diseño <ul><li>Los mas conocidos son: </li></ul><ul><ul><li>GOF (Gang of Four) </li></ul></ul><ul><ul><li>Core J2EE Patterns </li></ul></ul>
  • 8. Core J2EE Patterns – Capa presentación
  • 9. Front Controller/ Front Component <ul><li>Objeto que acepta todos los requerimientos de un cliente y los direcciona a manejadores apropiados. </li></ul><ul><li>El patrón Front Controller podría dividir la funcionalidad en 2 diferentes objetos: el Front Controller y el Dispatcher. En ese caso, El Front Controller acepta todos los requerimientos de un cliente y realiza la autenticación, y el Dispatcher direcciona los requerimientos a manejadores apropiada. </li></ul>
  • 10. View Helper <ul><li>Un objeto helper que encapsula la lógica de acceso a datos en beneficio de los componentes de la presentación. </li></ul><ul><li>Por ejemplo, los JavaBeans pueden ser usados como patrón View Helper para las páginas JSP. </li></ul>
  • 11. Composite view <ul><li>Un objeto vista que está compuesto de otros objetos vista. Por ejemplo, una página JSP que incluye otras páginas JSP y HTML usando la directiva include o el action include es un patrón Composite View. </li></ul>
  • 12. Dispatcher View <ul><li>Es como el patrón de diseño MVC con el controlador actuando como Front Controller pero con un asunto importante: aquí el Dispatcher (el cual es parte del Front Controller) no usa View Helpers y realiza muy poco trabajo en el manejo de la vista. El manejo de la vista es manejado por los mismos componentes de la Vista. </li></ul>
  • 13. Service To Worker <ul><li>Es como el patrón de diseño MVC con el Controlador actuando como Front Controller pero con una cosa importante: aquí el Dispatcher (el cual es parte del Front Controller) usa View Helpers a gran escala y ayuda en el manejo de la vista. </li></ul>
  • 14. Gang Of Four (GoF) <ul><li>En el libro del GoF se propone unos principios fundamentales de diseño subyacentes a los patrones de diseño que permiten crear aplicaciones más flexibles y robustas: </li></ul><ul><li>Programar para interfaces y no para una implementación. </li></ul><ul><li>Favorecer la composición de objetos frente a la herencia de clases. </li></ul><ul><li>Otros principios de gran importancia que se derivan de los principios anteriores son los que se detallan a continuación: </li></ul><ul><li>Determinar qué es común y qué es variable ( commonality analisys ). </li></ul><ul><ul><li>Común = Estable </li></ul></ul><ul><li>Permitir el reemplazo de lo variable mediante una interfaz común. </li></ul>
  • 15. Clasificación de patrones de diseño <ul><li>De Creación : Abstraen el proceso de creación de instancias de objetos. Ayudan a hacer a un sistema independiente de cómo se crean, se componen y se representan sus objetos. </li></ul><ul><li>Estructurales : Tratan con la composición de clases u objetos. Se ocupan de cómo las clases y objetos son utilizados para componer estructuras de mayor tamaño. </li></ul><ul><li>De Comportamiento : Caracterizan el modo en que las clases y objetos interactúan y se reparten la responsabilidad. Atañen a los algoritmos y a la asignación de responsabilidades entre objetos. </li></ul>
  • 16. Clasificación de patrones de diseño

×