Patrones de Diseño -...
-
Upload
trinhkhuong -
Category
Documents
-
view
233 -
download
0
Transcript of Patrones de Diseño -...
![Page 1: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/1.jpg)
PATRONES DE DISEÑO
FRAMEWORKS
Definiciones
Finalidades
Características
Diseño de software basado en patrones
Descripción
Utilización de los patrones en el diseño
Clasificación
![Page 2: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/2.jpg)
FRAMEWORKS
Basado en la reutilización del diseño detallado y el código
“conjunto integrado de componentes que colaboran dentro de una arquitectura reutilizable en una familia de aplicaciones”
“desde la óptica de la programación es un conjunto de funciones o código genérico que realiza tareas comunes y frecuentes en todo tipo de aplicaciones, como la creación de objetos, conexión con base de datos, entre otros”
![Page 3: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/3.jpg)
VENTAJAS DEL USO DE
FRAMEWORKS
Permite mejor modularización de componentes
Reutilización óptima de los códigos
Implementa uno o más patrones de diseño de
software que aseguran la escalabilidad del
producto
En las tecnologías de aplicaciones web, los
patrones de diseños más usados son los que se
centran en separar la presentación (página
html, css) de la lógica o backend.
![Page 4: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/4.jpg)
VENTAJAS DEL USO DE
FRAMEWORKS
El patrón más popular es el MVC, este separa
las capas de modelo:
Objetos que interactúan con BD y efectúan procesos
pesados o lógica de negocio
Vista, la presentación final de los datos procesados al
cliente
Controlador, capa que se encarga de recibir la entrada
del usuario, delegando el trabajo a los modelos
respectivos e invocar la vista correcta
![Page 5: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/5.jpg)
REQUERIMIENTOS NO FUNCIONALES-
FRAMEWORKS
Construir sistemas distribuidos
Permitir el reuso de la interfaz de usuario:
separar el comportamiento de las interfaces
Reducir el número de solicitudes al backend,
manejando la información del lado del cliente
Centralizar el acceso a los objetos del dominio
para ofrecer su información
Obtener una arquitectura flexible, manejo
estándar de interfaces
![Page 6: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/6.jpg)
PATRÓN DE DISEÑO
“Es una semilla de conocimiento, la cual tiene
un nombre y transporta la esencia de una
solución probada a un problema concurrente
dentro de cierto contexto en medio de intereses
en competencia”
Brad Appleton (1998)
![Page 7: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/7.jpg)
PATRÓN DE DISEÑO
Se puede decir que el patrón de diseño
describe una estructura de diseño
particular dentro de un contexto específico
y en medio de fuerzas que pueden tener
un impacto en la manera en que se aplica
y utiliza el patrón.
![Page 8: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/8.jpg)
PATRÓN DE DISEÑO
“Cada patrón describe un problema que
ocurre una y otra vez en nuestro entorno,
y después describe la esencia de la
solución a dicho problema, de tal forma
que pueda usar esta solución un millón de
veces más, sin nunca hacerlo dos veces de
la misma forma.”
Christopher Alexander
![Page 9: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/9.jpg)
OTRAS DEFINICIONES DE PATRONES DE
DISEÑO
Herramientas que proveen facilidades para hacer software reutilizable y de buena calidad.
Describe un problema que ocurre repetidamente en nuestro entorno, y describe el núcleo de la solución a ese problema, de tal forma que ésta pueda ser usada un millón de veces, sin hacer el mismo trabajo dos veces
![Page 10: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/10.jpg)
OTRAS DEFINICIONES DE PATRONES DE
DISEÑO
Se reconoce como patrón si se codifican en un formato estructurado que describe el problema y su solución, y si se les asigna un nombre.
Es una pareja de problema / solución con un nombre y que es aplicable a otros contextos, con una sugerencia sobre la manera de usarlo en situaciones nuevas.
![Page 11: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/11.jpg)
FINALIDADES DEL PATRÓN DE DISEÑO
Proporcionar una descripción que le permita al
diseñador:
Si el patrón es aplicable al trabajo que se
pretende realizar
Si el patrón puede ser reutilizado, a fin de
ahorrar tiempo en el diseño
Si el patrón puede servir de guía para el
desarrollo de un patrón similar, pero distinto
de manera funcional o estructural
![Page 12: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/12.jpg)
CARACTERÍSTICAS DE UN PATRÓN DE
DISEÑO
Son soluciones concretas. Proponen soluciones a problemas concretos, no son teorías genéricas.
Son soluciones técnicas. Indican resoluciones técnicas basadas en Programación Orientada a Objetos (POO). En ocasiones tienen más utilidad con algunos lenguajes de programación y en otras son aplicables a cualquier lenguaje.
Se utilizan en situaciones frecuentes. Ya que se basan en la experiencia acumulada para resolver problemas reiterativos.
![Page 13: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/13.jpg)
CARACTERÍSTICAS DE UN PATRÓN DE
DISEÑO
Favorecen la reutilización de código. Ayudan a construir software basado en la reutilización, a construir clases reutilizables. Los propios patrones se reutilizan cada vez que se vuelven a aplicar.
El uso de un patrón no se refleja en el código. Al aplicar un patrón, el código resultante no tiene por que delatar el patrón o patrones que lo inspiró, aun cuando la tendencia en la actualidad es incluir en los nombres de las clases el nombre del patrón en que se basa, a fin de facilitar la comunicación entre desarrolladores.
![Page 14: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/14.jpg)
Es difícil reutilizar la implementación de
un patrón. Al aplicar un patrón aparecen clases
concretas que solucionan un problema concreto y
que no será aplicable a otros problemas que
requieran el mismo patrón.
Características de un Patrón de Diseño
![Page 15: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/15.jpg)
DISEÑO DE SOFTWARE BASADO EN
PATRONES
Los ingenieros de software tienen la responsabilidad de definir patrones característicos de un problema y que puedan combinarse entre sí para crear una solución.
Este debe en la medida posible evaluar la reutilización de patrones de diseño existentes y probados, en lugar de dedicar tiempo en crear nuevos patrones.
![Page 16: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/16.jpg)
DESCRIPCIÓN DE UN PATRÓN DE
DISEÑO
De acuerdo a lo expuesto por Pressman (2006)
Nombre del Patrón: Describe la esencia de un
patrón en un nombre corto, pero expresivo
que permita su ubicación durante la
búsqueda del patrón correcto.
Intención: Describe el patrón y lo que este
realiza.
Motivación: Proporciona un ejemplo del
problema.
Aplicabilidad: Situaciones específicas de
diseño en las cuales es aplicable el patrón.
![Page 17: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/17.jpg)
DESCRIPCIÓN DE UN PATRÓN DE
DISEÑO
Estructura: Describe las clases que se requieren para implementar el patrón.
Participantes: Define las responsabilidades de las clases que se requieren para implementar el patrón.
Colaboraciones: Cómo colaboran los participantes para llevar a cabo sus responsabilidades.
![Page 18: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/18.jpg)
DESCRIPCIÓN DE UN PATRÓN DE
DISEÑO
Consecuencias: Describe las fuerzas del
diseño que afectan al patrón y los
intercambios que se deben considerar la
implementación del patrón.
Patrones Relacionados: Patrones de diseño
relacionados mediante referencias cruzadas.
Fuerzas de diseño: describe requisitos no
funcionales (mantenibilidad, portabilidad)
asociados con el software en el que se
aplicará el patrón. Además de las
limitaciones que restringen la
implementación del patrón.
![Page 19: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/19.jpg)
UTILIZACIÓN DE PATRONES EN EL
DISEÑO
Después del análisis, el diseñador puede
representar de forma detallada el problema y
sus restricciones.
Patrones Arquitectónicos: Definen
Estructura general
Relaciones entre los subsistemas
Componentes del Software
Reglas de definición de las relaciones entre elementos
![Page 20: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/20.jpg)
UTILIZACIÓN DE PATRONES EN EL
DISEÑO
Patrones de Diseño: Se aplican a elementos
específicos del diseño:
Relación entre los componentes
Mecanismos de comunicación entre componentes
Idiomas: Conocidos como patrones de códigos
específicos del lenguaje:
Elemento algorítmico
Protocolo de interfaz específico
![Page 21: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/21.jpg)
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Según los planteamientos realizados por Gof se
tienen las siguientes categorías:
Patrones de Creación: maneja patrones que manejan las
guías en la construcción de objetos, implicando la toma de
una decisión sobre la clase responsable de su creación.
Singleton: Se usa cuando se desea garantizar que de una
clase solo existe una instancia, ejemplo la conexión con la
base de datos en la que se debe gestionar un recurso externo
Patrones Estructurales: Describen mecanismos
genéricos para organizar diferentes clases de objetos entre
sí.
Patrones de Comportamiento: se emplean para
organizar, gestionar y combinar el comportamiento de
diferentes objetos.
![Page 22: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/22.jpg)
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Según Mark Grand (Patterns in Java) se
debe considerar en las categorías anteriores
mencionadas por Gof, los Patrones
Fundamentales; que a su vez manejan el
patrón interfaz y patrón delegación.
![Page 23: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/23.jpg)
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Patrón Interfaz: En este patrón se debe considerar el dar respuesta a aspectos como: Tiempo de respuesta del sistema, se mide desde el
instante en que el usuario hace una acción de control hasta que obtiene respuesta del sistema
Funciones de ayuda para el usuario, casi todos los software deben tener ayuda en línea que le indique al usuario tener respuesta a sus preguntas
Manejo de información de errores, los errores deben ser expresados en un lenguaje comprensible al usuario que le permita emprender una acción que resuelva la situación
Rotulado de Comandos , en la actualidad esto ha sido desplazado por las GUI de ventanas
![Page 24: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/24.jpg)
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Patrón Delegación: Consiste en un medio de
extender y reutilizar la funcionalidad de una
clase mediante la creación de otra clase que
se le proporcione. Los lenguajes orientados
objetos proporcionan mecanismos para
implementarlo
![Page 25: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/25.jpg)
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Patrón Delegación: Consiste en un medio de
extender y reutilizar la funcionalidad de una
clase mediante la creación de otra clase que
se le proporcione. Los lenguajes orientados
objetos proporcionan mecanismos para
implementarlo
![Page 26: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes](https://reader030.fdocuments.mx/reader030/viewer/2022020414/5baea67409d3f290738d5dcd/html5/thumbnails/26.jpg)
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Patrón Mediador: Consiste en el manejo de
las interfaces del usuario
Coordina cambios en los estados de otros objetos
Coloca en un objeto lógica para administrar los
cambios de estado en otros objetos
Patrón de Transferencia de Datos de Objetos:
En interfaces remotas se requiere reducir el
número de llamadas y transferir mayor
cantidad de datos.