Curso de Patrones de diseño - 6 Facade

MitoCode
7 Jul 201804:33

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

00:00

😀 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

Los patrones de diseño de software son soluciones reutilizables y probadas a problemas comunes que se encuentran en el desarrollo de aplicaciones. En el video, se discute cómo aplicar estos patrones para simplificar y mejorar la estructura de un sistema. Los patrones son fundamentales para entender el tema central del curso.

💡Patrón de diseño Fachada

El patrón de diseño Fachada se refiere a una interfaz simplificada que proporciona acceso a un sistema más complejo. En el video, se utiliza como ejemplo para explicar cómo ocultar la complejidad de una aplicación y permitir que los clientes accedan a sus funcionalidades de manera sencilla.

💡Complejidad

La complejidad en el contexto del video se refiere a la complejidad interna de una aplicación que el patrón de Fachada busca ocultar. Es una parte crucial de la explicación sobre cómo el patrón de Fachada mejora la experiencia del usuario al proporcionar una interfaz de acceso más simple.

💡Cliente

En el guion, el 'cliente' es el usuario final que interactúa con la aplicación. El objetivo del patrón de Fachada es permitir que el cliente acceda a las funcionalidades del sistema sin tener que lidiar con su complejidad subyacente, como se ilustra con el ejemplo de la reserva de vuelos y hoteles.

💡Sistema

El 'sistema' mencionado en el script se refiere al conjunto de componentes y funcionalidades que componen la aplicación. El patrón de Fachada actúa como una capa que encapsula estas complejidades, permitiendo que el cliente interactúe con el sistema de manera más directa y sencilla.

💡Interfaz

La 'interfaz' en el contexto del patrón de Fachada es la representación de un conjunto de métodos o operaciones que el cliente puede utilizar para interactuar con el sistema. En el video, se menciona que el patrón de Fachada proporciona una interfaz que simplifica el acceso a las implementaciones subyacentes.

💡Implementación

La 'implementación' hace referencia a la forma en que se materializa el código y la lógica detrás de una funcionalidad del sistema. El patrón de Fachada permite que el cliente no tenga que conocer los detalles de la implementación para utilizar el sistema.

💡Clase

En el script, 'clase' se refiere a las clases en el lenguaje de programación que representan conceptos como 'Avión' y 'Hotel'. Estas clases son ejemplos de implementaciones que el patrón de Fachada encapsula para proporcionar una interfaz más simple al cliente.

💡Método buscar

El 'método buscar' es una función específica mencionada en el script que es parte de la clase Fachada. Este método recibe parámetros importantes para realizar búsquedas en las clases Avión y Hotel, ilustrando cómo el patrón de Fachada centraliza y simplifica el proceso de búsqueda.

💡Sistemas de reserva

Los 'sistemas de reserva' son un ejemplo práctico utilizado en el video para demostrar cómo funciona el patrón de Fachada. Se describe cómo los sitios web de reserva, como Despegar o Booking, actúan como fachadas que simplifican la complejidad de buscar y reservar vuelos y hoteles.

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

play00:00

[Música]

play00:07

continuamos coudannes con el curso de

play00:09

patrones de diseño de software y

play00:11

corresponde el tema de mbs sin embargo

play00:13

creo propicio tocar antes el punto del

play00:16

patrón de diseño fachada o pasar en

play00:18

inglés el vídeo que me ve se lo podemos

play00:19

dejar un poco más práctico cuando

play00:21

estemos viendo un poquito de web este

play00:23

patrón ya viene a ser un patrón

play00:24

estructural el cual su único objetivo es

play00:27

ocultar o simplificar la complejidad que

play00:29

pueda tener nuestra aplicación para que

play00:32

el cliente simplemente tenga un punto de

play00:34

acceso muy fácil y poder utilizar

play00:36

nuestro sistema sin que él sepa qué es

play00:38

lo que hay por dentro si ustedes ven

play00:39

aquí la imagen que está en tutoriales

play00:41

point pueden encontrar que tenemos lo de

play00:44

siempre que está explicando en esta

play00:45

página 6 la interfaz y sus diferentes

play00:47

implementaciones y el patrón fachada

play00:49

estaría representado en esta clase same

play00:52

maker que viene a tener la referencia a

play00:55

las tres implementaciones y hacer alguna

play00:57

operación de acuerdo a la implementación

play00:59

entonces el cliente lo que va a hacer es

play01:02

utilizar la fachada para poder disponer

play01:05

de las operaciones de las

play01:07

implementaciones no va a pasar

play01:08

directamente a la implementación sino

play01:11

que va a tener que utilizar el

play01:12

intermediario que sería

play01:13

fachada y yo les traigo un ejemplo muy

play01:15

fácil para que se puede entender esto el

play01:17

contexto de este ejercicio es que

play01:18

nosotros queremos hacer la reserva de un

play01:21

vuelo o la reserva de algún hotel

play01:22

entonces lo que yo he hecho aquí es

play01:25

tener un paquete lo llamado up y en el

play01:27

cual va a representar simplemente una

play01:29

lógica muy fácil pero esto en un sistema

play01:32

real puede venir ya la llamada de un

play01:34

servicio web de alguna base de datos a

play01:36

través de algunos parámetros que estoy

play01:38

indicando aquí esto es muy similar

play01:39

cuando entras a páginas como

play01:40

despegar.com a booking etcétera en donde

play01:43

tú le pasas algún dato y te busca en

play01:46

muchos establecimientos en muchos

play01:48

hoteles en muchas aerolíneas los datos

play01:50

que sean importantes para ti no es que

play01:51

estas páginas tengan despegar booking

play01:54

etcétera lo que existen tengan acceso a

play01:56

los sistemas de una forma total no van a

play01:59

tener algunos servicios expuestos para

play02:02

que puedan ser utilizados y enviar esa

play02:04

información al usuario que está

play02:06

solicitando por lo tanto estos sistemas

play02:08

serían como una especie de fachada entre

play02:11

la implementación compleja que viene a

play02:14

ser todos los sistemas de los aviones de

play02:16

las aerolíneas de los hoteles y el

play02:19

usuario

play02:20

sería estos intermediarios que es

play02:21

despegar booking etcétera entonces es

play02:24

algo así quiero hacer aquí tengo dos

play02:26

clases avión up y en el cual va a

play02:27

representar como si estuviera buscando

play02:29

algún vuelo una fecha de ida una fecha

play02:31

de vuelta un origen y un destino y el

play02:33

hotel lo mismo una fecha de entrada una

play02:36

fecha de salida un origen jon destino

play02:37

mensajes simples nada más para temas

play02:40

demostrativos y tengo la clase fachada

play02:43

en el cual estoy llamando a esas dos

play02:45

clases esas dos a piqué las hoy

play02:47

indicando aquí aunque específicamente no

play02:49

es una piper o es simplemente tema

play02:51

demostrativo y estoy inicial izando nos

play02:53

y luego llamo método buscar en el cual

play02:56

recibe como parámetros todos los valores

play02:58

importantes para que puedan ser buscados

play03:00

en cada clase en la clase app que es

play03:02

donde tiene el método main simplemente

play03:04

el cliente 1 lo que hace es instancia la

play03:06

fachada y mediante el método definido en

play03:09

esta fachada puede pasarle los valores

play03:11

necesarios para que cada clase haga su

play03:14

trabajo por lo tanto la utilidad de este

play03:16

patrón es que el cliente al utilizar

play03:19

directamente la fachada no tiene por qué

play03:21

saber cuál es la complejidad de lo que

play03:23

hay en el método buscar y esto en

play03:24

sistemas reales es ampliamente utilizado

play03:27

porque es muy común exponer lógica de

play03:30

negocio en servicios show o servicios

play03:32

red a través de algunas interfaces y que

play03:34

el cliente tome esto como una fachada

play03:36

para poder entrar a otros subsistemas o

play03:38

también entre las capas de nuestro

play03:41

proyecto poder simplificar la lógica de

play03:44

acceso a otras mediante una fachada como

play03:46

lo están viendo aquí al correr la

play03:47

aplicación ustedes pueden ver que está

play03:51

emitiendo los mensajes definidos en la

play03:52

clase avión api y en la clase hotel app

play03:54

y por lo tanto el patrón facha de

play03:56

simplificar el uso de nuestro sistema

play03:58

para que el cliente pueda utilizarlo de

play04:00

una manera muy práctica y sencilla ven

play04:02

que le pasó a los parámetros y el buscar

play04:05

obviamente iría aquí a la fachada

play04:07

pasaría a los parámetros tanto para

play04:09

hacer lo correspondiente en la clase

play04:10

avión y en la clase hotel si te gustó

play04:13

este tutorial dale manito arriba

play04:14

compártelo con tus amigos no te olvides

play04:17

suscribirte en el botón de aquí abajo

play04:18

seguirme en redes sociales que están en

play04:20

la descripción del vídeo deja tu

play04:21

comentario y los espero en un siguiente

play04:23

tutorial

play04:24

[Música]

Rate This

5.0 / 5 (0 votes)

Related Tags
Patrón de diseñoFachadaSoftwareReservasVuelosHotelesIntermediarioAPISimplificaciónDesarrollo web
Do you need a summary in English?