lOMoARcPSD|19593527
Patrones De Diseño Emergentes
Programación III (Universidad Tecnológica de Guadalajara)
Studocu is not sponsored or endorsed by any college or university
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
UNIVERSIDAD
TECNOLOGÍAS DE LA INFORMACIÓN Y
COMUNICACIÓN
PATRONES DE DISEÑO
EMERGENTES
RESUMEN
MOR., DICIEMBRE DE 2020
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
INDICE
INDICE ............................................................................................................ 2
INTRODUCCION ............................................................................................ 3
DESARROLLO ............................................................................................... 4
MVC ..................................................................................................................... 4
DAO ..................................................................................................................... 5
CQRS .................................................................................................................. 6
DDD ..................................................................................................................... 7
MVVM .................................................................................................................. 8
MVP ..................................................................................................................... 9
CONCLUSION .............................................................................................. 10
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
INTRODUCCION
En el presente trabajo se dará a conocer de forma resumida los patrones de diseño
emergentes tales como MVC, DAO, CQRS, DDD, MVVM y MVP.
Estos mismos patrones serán detallados de manera individual. De esta misma forma
es como cada patrón tiene su información detallada como su definición, sus
características, ventajas, desventajas y entre muchas otras cosas más, misma
información individual será englobada y a si mismo será recopilada y mostrada de
manera general y resumida dándonos una idea de lo que se tratan estos patrones
de diseño emergentes.
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
DESARROLLO
MVC
El Model View Controller es considerado un patrón de diseño de software, lo que
hace es separar la interfaz de usuario, la lógica y los datos en tres componentes
diferentes.
Este nace con la necesidad de crear sistemas de software que contenga un ciclo de
vida mas practico, que permita un mantenimiento mas eficaz y con la opción de
reutilizar código esto por la separación de componentes.
Sus componentes son:
Modelo: Es la representación de la información con la cual el sistema opera y
gestiona.
Vista: Se representa en un modelo adecuado para interactuar con el usuario. Se
trabajan con los datos los cuales devuelven una respuesta.
Controlador: responde a los eventos que son solicitados. Es el enlace entre las
vistas y los modelos.
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
DAO
Se conoce como un patrón que provee una interfaz abstracta de una base de datos
o algún otro mecanismo de persistencia. A través de un objeto DAO se administra
la conexión con el recurso de información para obtener y guardar datos.
Su estructura esta conformada por BusinessObject, DataAccessObject, DataSource
y TransferObject.
BusinessObject: Representa el cliente de datos, Es el objeto que requiere acceso al
origen de datos para obtener y almacenar datos.
DataAccessObject: Es el objeto principal de este patrón, el DataAccessObject
abstrae la implementación de acceso a datos subyacente para BusinessObject.
DataSource: Representa el origen de los datos los cuales podrían ser una base de
datos como un RDBMS, OODBMS, repositorios XML, sistemas de archivos de
formato.
TransferObject: Es un objeto de transferencia a en el cual los datos se almacenan.
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
CQRS
Command Query Responsibility Segregation (Segregación de Responsabilidad de
Consultas de Comando). Es un patrón de diseño emergente que se basa en dividir
en dos modelos de implementación: lectura y escritura.
El modelo de escritura, es aquella que se encarga de actualizar la base de
datos y el modelo de lectura únicamente se encargará de consultarla.
Modelo de escritura
• Aggregate
• Commands
• Dominios de escritura
• Repositorio de escritura
Modelo de lectura
• Projection
• Queries
• Dominios de lectura
• Repositorio de lectura
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
DDD
Es un patrón de diseño con un enfoque basado en dominios (domains), para
necesidades complejas, haciendo un enfoque en el dominio principal, los aspectos
del modelo y el núcleo del negocio.
Domain
El dominio en términos de DDD, es el problema de negocio para el que se está
diseñando la solución.
Core Domain
El diferenciador clave para el negocio del cliente: algo que deben hacer bien y no
pueden subcontratar.
Sub-Domain
Separan las características o aplicaciones que su software debe admitir o debe
interactuar.
¿Para qué sirve?
Sirve para representar distintas claves, terminología y patrones utilizados para
desarrollar software donde el dominio es lo más central e importante de una
determinada organización.
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
MVVM
Es un patrón de de diseño de software desarrollado por Microsoft en el 2008.
Se caracteriza por tratar de desacoplar lo máximo posible la interfaz de usuario de
la lógica de la aplicación.
Este mismo se compone en 3 estructuras las cuales son:
Modelo
Encargado de representar el modelo del negocio, proveyendo de esta manera la
base necesaria para la manipulación de los datos de la aplicación.
Vista
Encargada de la parte visual de nuestra aplicación, sin ocuparse en el manejo de
datos.
Vista-Modelo
Encargado de ser la capa intermedia entre el modelo y la vista, procesando todas
las peticiones que tenga la vista hacia el modelo.
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
MVP
Modelo-vista-presentador (MVP) es una derivación del patrón arquitectónico
modelo-vista-controlador (MVC) y se usa principalmente para construir interfaces
de usuario.
Este mismo posee 3 capas las cuales son:
Modelo: Esta capa gestiona los datos. Son las clases que denominaremos de lógica
de negocio.
Vista: Se encarga de mostrar los datos. Aquí se encontrarán nuestros Fragmentos
y Vistas.
Presentador: Se sitúa entre el modelo y la vista, permitiendo conectar la interfaz
gráfica con los datos.
Por otra parte, este mismo también cuenta con 2 modos los cuales son:
MVP como Controlador Supervisado: se puede tener un presentador que no
gestione la información de la vista, es la misma vista quién gestiona toda su lógica.
MVP como Vista Pasiva: es posible hacer que el presentador gestione en su
totalidad la información de la vista, en pocas palabras, hace que la vista no tenga
ninguna lógica, limitándose a sólo mostrar datos.
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)
lOMoARcPSD|19593527
CONCLUSION
En conclusión, podemos decir que estos patrones de diseño mostrados
anteriormente son propuestas para dar soluciones a problemas que surgen
comúnmente, aunque estas son enfocadas mas a estructuras y en como se
desarrolla el código mismo o a su vez productos de software.
Como bien sabemos no solo podemos utilizar un solo patrón si no que es posible
utilizar mas de uno y así adaptarlos a nuestras propias necesidades todo con su
debida medida y teniendo un conocimiento basto de ambos patrones para que todo
surja de una manera excelente.
Gracias a todos estos patrones un producto de software puede llevar su
estandarización de mejora tanto desde documentación hasta el código del mismo y
así llevar a cabo el producto de la manera más eficaz posible.
10
Downloaded by Frederick Guzman (frederickguzman2236@gmail.com)