Curso de Patrones de diseño - 6 Facade
Summary
TLDREl video proporciona una explicación detallada del patrón de diseño de software conocido como 'fachada'. Este patrón estructural se utiliza para simplificar la complejidad de una aplicación, ofreciendo un punto de acceso sencillo al cliente. El video utiliza un ejemplo práctico de reserva de vuelos y hoteles para ilustrar cómo funciona la fachada, que actúa como intermediario entre el usuario y las implementaciones complejas detrás de los sistemas. Se muestra cómo, mediante la fachada, el cliente puede realizar búsquedas sin tener que entender la complejidad subyacente de los sistemas, facilitando así el uso del sistema y permitiendo una integración más eficiente con otros subsistemas o servicios web.
Takeaways
- 🏢 El patrón de diseño Façade es un patrón estructural que busca simplificar la complejidad de una aplicación para el cliente.
- 👉 El objetivo principal del patrón Façade es ocultar la complejidad interna y proporcionar un punto de acceso sencillo para el cliente.
- 📚 Se menciona que el patrón Façade es práctico especialmente en el contexto de la web, donde se utiliza para exponer servicios de negocio.
- 🛫 En el ejemplo dado, el patrón Façade se utiliza para la reserva de vuelos y hoteles, simplificando el proceso para el usuario final.
- 🏨 Se describe un paquete 'up' que representa una lógica simple para buscar vuelos y hoteles, similar a cómo funcionan los sitios web de reserva.
- 🔄 El patrón Façade actúa como intermediario entre el cliente y las implementaciones complejas de los sistemas de reserva.
- 📝 Se explica que el cliente utiliza la Façade para acceder a las operaciones de las implementaciones sin conocer los detalles internos.
- 📚 El patrón Façade es representado en la clase 'sameMaker', que tiene referencias a las tres implementaciones y realiza operaciones según la implementación.
- 🛠️ El patrón se ejemplifica con clases 'avión' y 'hotel', que manejan búsquedas de reservas con parámetros simples.
- 🔑 La clase 'fachada' es la que llama a las clases 'avión' y 'hotel', recibiendo parámetros importantes para la búsqueda y simplificando el proceso para el cliente.
- 📈 El patrón Façade es ampliamente utilizado en sistemas reales para exponer lógica de negocio a través de interfaces y servicios web.
Q & A
¿Qué es el patrón de diseño Fachada y qué propósito cumple?
-El patrón de diseño Fachada es un patrón estructural que tiene como objetivo ocultar o simplificar la complejidad de una aplicación, proporcionando un punto de acceso fácil para el cliente que utiliza el sistema sin que tenga que conocer los detalles internos.
¿Cómo se representa el patrón Fachada en el ejemplo del tutorial?
-En el ejemplo, el patrón Fachada se representa con la clase 'sameMaker', que tiene referencias a las tres implementaciones y realiza alguna operación de acuerdo a la implementación.
¿Qué es lo que hace el cliente en el contexto del patrón Fachada?
-El cliente utiliza la Fachada para acceder a las operaciones de las implementaciones, evitando interactuar directamente con las mismas y simplificando su uso del sistema.
¿En qué contexto se utiliza el ejemplo de reserva de vuelo y hotel en el tutorial?
-El contexto es para ilustrar cómo funciona el patrón Fachada en una situación real, donde se realiza la reserva de un vuelo o un hotel a través de un servicio web o una base de datos.
¿Qué clases representan el ejemplo de reserva de vuelo y hotel en el script?
-Las clases 'avión' y 'hotel' representan el ejemplo de reserva, donde cada una tiene métodos para buscar vuelos y hoteles respectivamente, basándose en parámetros como fechas y ubicaciones.
¿Cómo se inicializa y se utiliza la clase Fachada en el ejemplo?
-La clase Fachada se inicializa en el método main y se utiliza para pasar los valores necesarios a las clases 'avión' y 'hotel' a través del método 'buscar'.
¿Qué es la clase 'app' y qué contiene?
-La clase 'app' es donde se encuentra el método main, que es el punto de entrada del programa. En ella, se instancia la Fachada y se le pasan los valores necesarios para que cada clase realice su función.
¿Por qué es útil el patrón Fachada en sistemas reales?
-Es útil porque permite exponer la lógica de negocio a través de servicios web o servicios de red de una manera que el cliente no necesita saber la complejidad detrás de estas interfaces, simplificando así el acceso a otros subsistemas.
¿Cómo se puede ver en acción el patrón Fachada al correr la aplicación?
-Al correr la aplicación, se pueden ver los mensajes definidos en las clases 'avión' y 'hotel', que son emitidos por la Fachada, mostrando cómo esta intermedia la complejidad y facilita el uso del sistema.
¿Cómo se pueden seguir las redes sociales del creador del tutorial?
-Se pueden seguir las redes sociales del creador del tutorial a través de los enlaces que se encuentran en la descripción del video.
Outlines
😀 Introducción al Patrón de Diseño Fachada
El primer párrafo introduce el tema del patrón de diseño fachada, un patrón estructural que se utiliza para ocultar la complejidad de una aplicación y proporcionar un punto de acceso simple para el cliente. Se menciona que este patrón es práctico especialmente en el contexto de la web. Se utiliza el ejemplo de un sistema de reserva de vuelos o hoteles para ilustrar cómo funciona el patrón fachada, donde el cliente interactúa con una interfaz simplificada (la fachada) en lugar de con las complejas implementaciones subyacentes. Se describe cómo el patrón se representa en una clase 'SameMaker' que tiene referencias a varias implementaciones y realiza operaciones según la implementación seleccionada. El objetivo es que el cliente utilice la fachada para acceder a las operaciones sin conocer los detalles internos del sistema.
Mindmap
Keywords
💡Patrones de diseño de software
💡Patrón de diseño Fachada
💡Complejidad
💡Cliente
💡Sistema
💡Interfaz
💡Implementación
💡Clase
💡Método buscar
💡Sistemas de reserva
Highlights
Curso de patrones de diseño de software.
Introducción al patrón de diseño fachada.
El patrón fachada es un patrón estructural.
El objetivo del patrón fachada es ocultar o simplificar la complejidad de la aplicación.
El cliente tiene un punto de acceso fácil sin saber los detalles internos del sistema.
La interfaz y sus diferentes implementaciones son parte del patrón fachada.
La clase 'same maker' representa el patrón fachada con referencia a las implementaciones.
El cliente utiliza la fachada para acceder a las operaciones de las implementaciones.
El patrón fachada actúa como intermediario entre el cliente y las implementaciones.
Ejemplo práctico: reserva de vuelos o hoteles.
La clase 'up' representa la lógica de búsqueda de vuelos y hoteles.
Los servicios web y bases de datos pueden ser utilizados a través de parámetros.
Despegar.com y booking.com son ejemplos de fachadas que simplifican la búsqueda de servicios.
Las fachadas son intermediarios entre sistemas complejos y el usuario.
Clases 'avión' y 'hotel' representan búsquedas específicas en el ejemplo dado.
La clase 'fachada' llama a las clases 'avión' y 'hotel' para realizar búsquedas.
El cliente instancia la fachada y utiliza métodos para pasar parámetros y buscar.
El patrón fachada es útil para ocultar la complejidad del método de búsqueda.
El patrón fachada se utiliza comúnmente en servicios web y servicios de red.
La aplicación muestra cómo el patrón fachada simplifica el uso del sistema.
Los comentarios y mensajes se emiten a través de las clases 'avión' y 'hotel'.
El patrón fachada permite al cliente utilizar el sistema de manera práctica y sencilla.
Transcripts
[Música]
continuamos coudannes con el curso de
patrones de diseño de software y
corresponde el tema de mbs sin embargo
creo propicio tocar antes el punto del
patrón de diseño fachada o pasar en
inglés el vídeo que me ve se lo podemos
dejar un poco más práctico cuando
estemos viendo un poquito de web este
patrón ya viene a ser un patrón
estructural el cual su único objetivo es
ocultar o simplificar la complejidad que
pueda tener nuestra aplicación para que
el cliente simplemente tenga un punto de
acceso muy fácil y poder utilizar
nuestro sistema sin que él sepa qué es
lo que hay por dentro si ustedes ven
aquí la imagen que está en tutoriales
point pueden encontrar que tenemos lo de
siempre que está explicando en esta
página 6 la interfaz y sus diferentes
implementaciones y el patrón fachada
estaría representado en esta clase same
maker que viene a tener la referencia a
las tres implementaciones y hacer alguna
operación de acuerdo a la implementación
entonces el cliente lo que va a hacer es
utilizar la fachada para poder disponer
de las operaciones de las
implementaciones no va a pasar
directamente a la implementación sino
que va a tener que utilizar el
intermediario que sería
fachada y yo les traigo un ejemplo muy
fácil para que se puede entender esto el
contexto de este ejercicio es que
nosotros queremos hacer la reserva de un
vuelo o la reserva de algún hotel
entonces lo que yo he hecho aquí es
tener un paquete lo llamado up y en el
cual va a representar simplemente una
lógica muy fácil pero esto en un sistema
real puede venir ya la llamada de un
servicio web de alguna base de datos a
través de algunos parámetros que estoy
indicando aquí esto es muy similar
cuando entras a páginas como
despegar.com a booking etcétera en donde
tú le pasas algún dato y te busca en
muchos establecimientos en muchos
hoteles en muchas aerolíneas los datos
que sean importantes para ti no es que
estas páginas tengan despegar booking
etcétera lo que existen tengan acceso a
los sistemas de una forma total no van a
tener algunos servicios expuestos para
que puedan ser utilizados y enviar esa
información al usuario que está
solicitando por lo tanto estos sistemas
serían como una especie de fachada entre
la implementación compleja que viene a
ser todos los sistemas de los aviones de
las aerolíneas de los hoteles y el
usuario
sería estos intermediarios que es
despegar booking etcétera entonces es
algo así quiero hacer aquí tengo dos
clases avión up y en el cual va a
representar como si estuviera buscando
algún vuelo una fecha de ida una fecha
de vuelta un origen y un destino y el
hotel lo mismo una fecha de entrada una
fecha de salida un origen jon destino
mensajes simples nada más para temas
demostrativos y tengo la clase fachada
en el cual estoy llamando a esas dos
clases esas dos a piqué las hoy
indicando aquí aunque específicamente no
es una piper o es simplemente tema
demostrativo y estoy inicial izando nos
y luego llamo método buscar en el cual
recibe como parámetros todos los valores
importantes para que puedan ser buscados
en cada clase en la clase app que es
donde tiene el método main simplemente
el cliente 1 lo que hace es instancia la
fachada y mediante el método definido en
esta fachada puede pasarle los valores
necesarios para que cada clase haga su
trabajo por lo tanto la utilidad de este
patrón es que el cliente al utilizar
directamente la fachada no tiene por qué
saber cuál es la complejidad de lo que
hay en el método buscar y esto en
sistemas reales es ampliamente utilizado
porque es muy común exponer lógica de
negocio en servicios show o servicios
red a través de algunas interfaces y que
el cliente tome esto como una fachada
para poder entrar a otros subsistemas o
también entre las capas de nuestro
proyecto poder simplificar la lógica de
acceso a otras mediante una fachada como
lo están viendo aquí al correr la
aplicación ustedes pueden ver que está
emitiendo los mensajes definidos en la
clase avión api y en la clase hotel app
y por lo tanto el patrón facha de
simplificar el uso de nuestro sistema
para que el cliente pueda utilizarlo de
una manera muy práctica y sencilla ven
que le pasó a los parámetros y el buscar
obviamente iría aquí a la fachada
pasaría a los parámetros tanto para
hacer lo correspondiente en la clase
avión y en la clase hotel si te gustó
este tutorial dale manito arriba
compártelo con tus amigos no te olvides
suscribirte en el botón de aquí abajo
seguirme en redes sociales que están en
la descripción del vídeo deja tu
comentario y los espero en un siguiente
tutorial
[Música]
5.0 / 5 (0 votes)