Learn to use the Factory-Method pattern and respect the Open-Closed principle ðŸ’ŧBuild a POS

āđāļŠāļĢāđŒ
āļāļąāļ‡
  • āđ€āļœāļĒāđāļžāļĢāđˆāđ€āļĄāļ·āđˆāļ­ 23 āļ˜.āļ„. 2024

āļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™ •

  • @DotTechES
    @DotTechES  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    🌟 ÂĄNos encantaría saber tu opiniÃģn! 🌟
    Tus ideas son valiosas: ÂŋQuÃĐ temas o contenidos te gustaría que explorÃĄramos? ÂĄComparte tus sugerencias!
    Tu voz cuenta: ÂŋQuÃĐ te ha parecido este vídeo? DÃĐjanos tu opiniÃģn y conversemos.
    🚀 Sigue aprendiendo con nosotros: 🚀
    Explora nuestras series especializadas para profundizar en tus temas favoritos:
    ðŸ–Ĩ JavaScript Bites: Descubre trucos y consejos prÃĄcticos th-cam.com/video/eemazs4qfac/w-d-xo.html
    🔍 Angular Bites: Aprende Angular desde cero hasta avanzado th-cam.com/video/ibTe8VR7hMk/w-d-xo.html
    ðŸ’Ą Ingeniería del Software: Mejora tus habilidades en ingeniería de software th-cam.com/video/d1EVlXoWKbw/w-d-xo.html
    ðŸ§Đ Patrones de DiseÃąo: Domina los patrones de diseÃąo con ejemplos prÃĄcticos th-cam.com/video/eemazs4qfac/w-d-xo.html
    🔔 Suscríbete y activa la campanita para no perderte ningÚn contenido nuevo. ÂĄTu apoyo es esencial para nosotros!

  • @lucaschambe
    @lucaschambe āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +6

    Gracias por el vídeo Carlos!

    • @DotTechES
      @DotTechES  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

      Gracias a ti por comentar! Nos seguimos viendo en mÃĄs vídeos, esperando que sean Útiles a la comunidad 💊💊

  • @carmenfernandez8266
    @carmenfernandez8266 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Que buen video. Me lo apunto😊..Esperando el siguiente..

    • @DotTechES
      @DotTechES  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Gracias Carmen! Pues el siguiente serÃĄ un poco mÃĄs prÃĄctico y, posteriormente continuaremos con los patrones creacionales 💊

  • @MesiahS_JR
    @MesiahS_JR āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Gran vídeo! Gracias por vuestro contenido! Siempre de 10!

    • @DotTechES
      @DotTechES  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Gracias! Nos vemos en el prÃģximo 💊💊

  • @FranciscoGonzalez-fv6hp
    @FranciscoGonzalez-fv6hp āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Gran video y gran aporte 💊 esperando ya el siguiente vídeo!

    • @DotTechES
      @DotTechES  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Gracias por el comentario, ya estamos trabajando en el siguiente video! 💊

  • @drojom
    @drojom āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

    Genial como siempre. Muchas gracias por compartirðŸĪĐ

    • @DotTechES
      @DotTechES  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Muchas Gracias @drojom por estar ahí, esperamos seguir creando mÃĄs contenido para compartirlo con todos!

  • @elvinantoniomendoza9631
    @elvinantoniomendoza9631 9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    Buen día, tremendo video y explicaciÃģn, gracias por este tipo de contenido. Tengo una duda en la parte del CLIENTE, el cual en cualquier momento tendría que afectarse si se agregase un nuevo producto, rompiendo el principio OPEN-CLOUSE, sÃĐ que con la estructura de FONDO queda perfecto todo, pero en esta parte del cliente que se haga ya sea desde Consola o Grafica se tendría que tener una sentencia SWITCH para crear la instancia CONCRETA del producto, podría alguien ILUMINARME en esta parte?, muchas gracias.

    • @DotTechES
      @DotTechES  9 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      En esta parte tienes que tener una acciÃģn que dispare la creaciÃģn. Podría ser totalmente declarativo, por ejemplo en una interfaz grÃĄfica tendrías botones que seleccionan en concreto que necesitas y podrías inferir la selecciÃģn de creaciÃģn. Si procediera de otro sistema, se debería pensar el problema concreto y se podría inferir la decisiÃģn a travÃĐs de una estrategia concreta seleccionada por otro sistema.

  • @leow375
    @leow375 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    La verdad no me quedo claro que creator elegir, entiendo que en el ejemplo que das decis con una terminal o una aplicacion grafica y me hace mucho sentido, pero en el caso que levantes los datos desde una BD no se me ocurre otra opcion que aplicar un simple factory aunque eso me lleve a romper el principio de OCP

    • @DotTechES
      @DotTechES  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +4

      Hola @leow375 gracias por comentar,
      Creo que el problema no estÃĄ en el patrÃģn factory-method, sino en el switch de selecciÃģn de la operaciÃģn a realizar, el desconocimiento de la operaciÃģn a priori nos hace tener un switch o una serie de if-else para determinar quÃĐ Creator concreto usar, y ahí es donde rompemos el OCP. No obstante, tenemos algunas maneras de evitar atarnos al switch (habría que tener cÃģdigo y problema concreto y ver todo el conjunto de la aplicaciÃģn) pero podríamos intentar aplicar algunas de estas tÃĐcnicas:
      1. Crear un mapa/diccionario de Creators. De esta manera tendríamos un mapa donde la clave podría ser un tipo de registro (por ejemplo userType) y el valor es una instancia del Creator concreto correspondiente.
      2. Puedes usar reflexiÃģn/introspecciÃģn para instanciar el Creator correcto (creo que esto sería lo mÃĄs fÃĄcil a priori para solucionar el problema).
      No obstante, si este mismo problema que planteas te aparece en otros patrones o circunstancias no es un problema de usar ese patrÃģn concreto, sino de una etapa previa de "interacciÃģn con el usuario del sistema" que en este caso sería la base de datos.
      Un saludo y muchas gracias !