Está en la página 1de 7

INTRODUCCIÓN A LOS PATRONES DE DISEÑO

LOS PATRONES DE DISEÑO (DESIGN PATTERNS) SON ELEMENTOS


REUTILIZABLES CREADOS PARA RESOLVER PROBLEMAS
COMUNES. ES DECIR QUE CON SU APLICACIÓN Y UTILIZACIÓN
PODREMOS CORREGIR DIFERENTES PROBLEMAS QUE PRESENTA
NUESTRO CÓDIGO DE UNA MANERA SEGURA, ESTABLE Y
TESTEADA POR CIENTOS DE PROGRAMADORES DE TODO EL
MUNDO.

AL UTILIZAR PATRONES DE DISEÑO ES IMPORTANTE


CONSIDERAR TAMBIÉN SI EL RENDIMIENTO DE NUESTROS
SISTEMAS SE VERÁ AFECTADO CUANDO APLIQUEMOS LA
SOLUCIÓN, YA QUE ALGUNOS PATRONES DE DISEÑO
INCORPORAN COMPLEJIDADES EN EL CÓDIGO QUE PUEDEN
PERJUDICAR EL DESEMPEÑO DE NUESTROS PROGRAMAS.
PATRONES DE DISEÑO
CONCEPTO VENTAJAS DESVENTAJAS
Rendimiento: Debido a que
Facilidad de Desarrollo: Al
cada funcionalidad está en
tener cada capa por
una capa diferente
Se enfoca en estructurar separado la
normalmente este patrón
aplicaciones que pueden implementación del
sufre de menor
descomponerse en grupos de testing es muy elevada
rendimiento que otros.
CAPAS

subtareas o respecto a otros patrones.


Escalabilidad: Debido a que
responsabilidades, las cuales Facilidad de Testeo: Debido
cada capa depende de la
se encuentran en un nivel a la alta distribución es
anterior y de la interfaz
concreto de abstracción mucho más sencillo
entre ellas, modificar un
coordinar un equipo para
software que utilice este
su desarrollo
patrón puede ser tedioso y
costoso

Disponibilidad:
1 TB Al
150 GB
CLIENTE SERVIDOR

Escalabilidad: Al funcionar
600 GB
depender de un servidor
de manera independiente
que este activo y
Se basa en el concepto de la es más sencillo mejorar
disponible en cada
existencia de un servidor (que cada pieza de forma
momento, una caída del
proporciona el servicio) y una separada.
servidor o incluso una
serie de clientes, que piden al Mantenimiento
congestión debido a la
servidor y reciben una simplificado: es más
cantidad de peticiones de
respuesta del mismo. sencillo mantener cada
clientes resulta en una
una de las piezas e incluso
pérdida de funcionalidad
poder trasladar con
absoluta.
sencillez el servidor a
Distribución
nuevo hardware.
PATRONES DE DISEÑO
CONCEPTO VENTAJAS DESVENTAJAS
Gestión centralizada: Este Dependencia: En muchos
patrón destaca para el casos una implementación
diseño de tareas multi- de este patrón implica una
Este patrón consiste en dos tarea ya que permite
grupos: Los esclavos realizan fuerte dependencia con el
dividir las tareas en sistema en el que se haya
la tarea propuesta por el
MASTER

diferentes módulos que implementado.


SLAVE

maestro, computan los pueden ser ejecutados de


resultados y los envían de Implementación: Por como
forma independiente. este sistema debe de
nuevo a este, quien los Control: Al partir todas las
presenta, almacena o procesa. funcionar,
tareas de un único nodo, independientemente unas
se mantiene mayor control tareas de otras, no siempre
ya que las tareas se es posible implementarlo
ejecutan de manera para todos los proyectos
independiente.

Se divide en tres partes Fácil colaboración: Al • Complejidad:


1 TB Es un
150 GB
separar fuertemente 600 GB
principales: patrón complejo que
CONTROLADOR
MODELO VISTA

-Modelo: Contiene la responsabilidades es requiere que los


funcionalidad central y los datos. posible desarrollar muchas desarrolladores implicados
-Vista: Muestra la información al nuevas características sin tengan muy claros los
usuario. necesidad de tocar todas conceptos de
-Controlador: Maneja la entrada las piezas implicadas. responsabilidad asignados
del usuario. Esto se hace para Aplicaciones multi-vista: Al a cada una de las partes.
separar las representaciones aislar las vistas del resto de Lentitud: Desarrollar
internas de la información de las la lógica de la aplicación es puede implicar tocar
formas en que se presenta y se posible presentar las muchas y diversas piezas y
acepta la información del mismas funcionalidades tener que seguir un flujo
usuario. en diferentes vistas. de trabajo cerrado.
PATRONES DE DISEÑO
CONCEPTO VENTAJAS DESVENTAJAS
Escalabilidad - Al igual que
el patrón master-slave al Coste: Para implementar
ser todas las tareas este sistema es necesario
Se utiliza para estructurar
ejecutadas independientes tener un gran número de
sistemas distribuidos con
las unas de las otras es servidores, que deben de
componentes desacoplados.
MEDIADOR

posible escalar fácilmente ser mantenidos


Estos componentes pueden
el sistema. independientemente.
interactuar entre sí mediante
Rendimiento - Al ser un Mantenimiento: A
la invocación de servicios
gran número de nodos diferencia de un sistema
remotos de forma que
conectados el rendimiento centralizado, este sistema
publicitan sus capacidades,
puede mantenerse distribuido implica que
solicitan un servicio y un
siempre en altas escalas ya cualquier falla debe de
componente, llamado broker.
que es posible redistribuir poder deberse a cualquier
si es necesario. pieza.

En este patrón, los 1 TB


150 GB 600 GB
componentes individuales se
Apoya al procesamiento
PEER TO PEER

conocen como Par (Peers). No hay garantías sobre


computacional
Los pares pueden funcionar calidad del servicio, ya que
descentralizado.
como clientes, solicitando los nodos cooperan
Gran robustez ante el fallo
servicios a otros pares, y como voluntariamente.
de cualquier nodo.
servidores, proporcionando La seguridad es difícil de
Altamente escalable en
servicios a otros pares. Un par garantizar.
términos de recursos y
puede actuar como cliente, El rendimiento depende
potencia de cálculo.
como servidor o como ambos, del número de nodos.
y puede cambiar su función
dinámicamente con el
tiempo.
PATRONES DE DISEÑO
CONCEPTO VENTAJAS DESVENTAJAS
Como los componentes
Las aplicaciones basadas
Este patrón se ocupa en son desarrollados de forma
en micronúcleo
situaciones donde el software por separado, es posible
generalmente son
MICROKERNEL

debe adaptarse a los probarlos de forma aislada.


desarrolladas para ser
requisitos cambiantes, pero a Es posible instalar todas las
ejecutadas en modo
la vez aislados. Y parte de un características adicionales
independiente, por lo que
núcleo mínimo de al núcleo en tiempo de
afecta su escalabilidad.
funcionalidades de cara al ejecución, lo que no
Son difíciles de desarrollar,
usuario final, para ir impacta a la aplicación.
se requiere un análisis muy
ampliando el software en la Muchas de las aplicaciones
elaborado para identificar
medida de que van surgiendo basadas en micronúcleos
hasta qué punto puede ser
las necesidades. trabajan de forma
extendida.
monolítica.

1 TB
Este patrón se ocupa 150 GB 600 GB
BUS DE EVENTOS

principalmente de los eventos


y comprende cuatro (4) Se pueden añadir La escalabilidad puede ser
componentes principales: fácilmente nuevos un problema, ya que todos
origen de eventos, oyente de editores, suscriptores y los mensajes viajan a
eventos, canal y bus de conexiones. través del mismo bus de
eventos. Los orígenes Eficaz para aplicaciones eventos.
publican mensajes en muy distribuidas.
determinados canales del bus
de eventos. Por otra parte, los
oyentes se suscriben a
canales en el bus.
PATRONES DE DISEÑO
CONCEPTO VENTAJAS DESVENTAJAS

El patrón de la pizarra consta


de tres componentes
principales. • Pizarra - una La modificación de la
BLACKBOARD

memoria global estructurada Facilita la ampliación de la estructura del espacio de


que contiene objetos del estructura del espacio de datos afecta a todas las
espacio de soluciones. • datos. aplicaciones.
Fuente de conocimiento: Facilidad para añadir Puede necesitar
módulos especializados con nuevas aplicaciones. sincronización y control de
su propia representación. • acceso.
Componente de
control:selecciona, configura y
ejecuta los módulos.

1 TB
Este patrón se utiliza para 150 GB 600 GB
diseñar un componente que Es posible un
INTERPRETER

comportamiento muy Por lo general, un lenguaje,


descifra programas escritos
dinámico. interpretado suele ser las
en un lenguaje específico.
Bueno para la lento que uno compilado,
Específicamente para evaluar
programabilidad del por lo que pueden
líneas de programas,
usuario final. presentar problemas de
sentencias o expresiones
Aumenta la flexibilidad, ya rendimiento y tiempo de
escritas en un lenguaje de
que es fácil sustituir e respuesta
programación concreto. La
idea básica es tener una clase interpretar el programa.
para cada símbolo del
lenguaje.
PATRONES DE DISEÑO
CONCEPTO VENTAJAS DESVENTAJAS

Implica complejidad
Es uno de los patrones más Mas fáciles de probar y adicional de los sistemas
MICROSERVICES

recientes y se ideó con el mantener, puesto que son por la dispersión que se
objetivo de crear aplicaciones servicios pequeños con un pueden producir por
más flexibles y para facilitar la solo propósito. distribución de los
migración de aplicaciones Facilita la escalabilidad, microservicios.
legadas y monolíticas. En la puesto que se va Mayor consumo de
práctica, se trata de varias incorporando capacidades recursos por sus altos
aplicaciones ligeras a la aplicación, sin afectar niveles de independencia.
desacopladas, que atienden su funcionamiento. Cada microservicio tiene
características concretas que, su propio Sistema
en su conjunto. operativo y dependencias.

Disponibilidad:
1 TB Al
150 GB 600 GB
depender de un servidor
que este activo y
disponible en cada
momento, una caída del
servidor o incluso una
congestión debido a la
cantidad de peticiones de
clientes resulta en una
pérdida de funcionalidad
absoluta.
Distribución

También podría gustarte