Patrones de Diseño Pablo Cáceres F.
¿Qué son los patrones de diseño? <ul><li>Patrones de diseño  o más comúnmente conocidos como &quot; Design Patterns “, son...
Patrones de Diseño <ul><li>Es evidente que a lo largo de multitud de diseños de aplicaciones hay  problemas que se repiten...
Objetivos de los patrones <ul><li>Proporcionar catálogos de elementos reusables en el diseño de sistemas software. </li></...
Categorías de patrones <ul><li>Según la escala o nivel de abstracción: </li></ul><ul><li>Patrones de arquitectura : Aquéll...
Estructuras o plantillas de patrones <ul><li>Nombre del patrón : nombre estándar del patrón por el cual será reconocido en...
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...
Core J2EE Patterns – Capa presentación
Front Controller/ Front Component <ul><li>Objeto que acepta todos los requerimientos de un cliente y los direcciona a mane...
View Helper <ul><li>Un objeto helper que encapsula la lógica de acceso a datos en beneficio de los componentes de la prese...
Composite view <ul><li>Un objeto vista que está compuesto de otros objetos vista. Por ejemplo, una página JSP que incluye ...
Dispatcher View <ul><li>Es como el patrón de diseño MVC con el controlador actuando como Front Controller pero con un asun...
Service To Worker <ul><li>Es como el patrón de diseño MVC con el Controlador actuando como Front Controller pero con una c...
Gang Of Four (GoF) <ul><li>En el libro del GoF se propone unos principios fundamentales de diseño subyacentes a los patron...
Clasificación de patrones de diseño <ul><li>De Creación : Abstraen el proceso de creación de instancias de objetos. Ayudan...
Clasificación de patrones de diseño
Próxima SlideShare
Cargando en…5
×

Introducción Patrones de Diseño

1.828 visualizaciones

Publicado el

0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.828
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
55
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Introducción Patrones de Diseño

  1. 1. Patrones de Diseño Pablo Cáceres F.
  2. 2. ¿Qué son los patrones de diseño? <ul><li>Patrones de diseño o más comúnmente conocidos como &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. 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. 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. 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. 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. 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. 8. Core J2EE Patterns – Capa presentación
  9. 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. 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. 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. 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. 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. 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. 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. 16. Clasificación de patrones de diseño

×