SINGLETON | PATRONES de DISEÑO

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ย. 2024
  • 👉🏻 Obtén 7 días de trial y 25$ de crédito en UpCloud
    👉🏻 upcloud.com/si...
    El patrón SINGLETON es uno de los más famosos y más utilizados. En éste vídeo vamos a ver cómo funciona éste patrón de diseño!
    Índice de la serie!
    👉🏻 • Las PIEZAS FUNDAMENTAL...
    The Clean Code Talks - "Global State and Singletons"
    👉🏻 • The Clean Code Talks -...
    👾 Redes sociales 👾
    ► Twitter: / bettatech
    ► Instagram: / betta_tech
    ► Canal Secundario: / @forkdebettatech
    ► Slack: bit.ly/33gaDDM
    👨🏼‍🏫 MIS CURSOS 👨🏼‍🏫
    👽 Curso de iniciación a la programación con JavaScript:
    ► bit.ly/3kr4bTc
    👕 MERCHANDISING DEL CANAL:
    ► Tienda TH-cam: / bettatech
    ► Tienda Teespring: teespring.com/...
    ⭐️ AFILIADOS ⭐️
    🎁 7% Descuento en HOSTINGER (Código BETTATECH)
    ► www.hostg.xyz/...
    🧠 Autocompletado con IA (Kite)
    ► www.kite.com/g...
    🐾 MacPaw (CleanMyMacX):
    ► macpaw.audw.ne...
    🎵 TODA la música es de EpidemicSound:
    ► www.epidemicso...
    ✉️ CONTACTO PROFESIONAL:
    ► Respuesta no garantizada:
    bettatechyt@gmail.com
    📚 LIBROS 📚
    Design Patterns
    ► amzn.to/39XuQlq
    Head First Design Patterns
    ► amzn.to/2uq6XUq
    Refactoring
    ► amzn.to/2SQnf2c
    Clean Architecture
    ► amzn.to/3bZVonJ
    Clean Code
    ► amzn.to/32WVKq3
    Introduction to Algorithms
    ► amzn.to/34SyVFP
    Cracking the Coding Interview
    ► amzn.to/2QkdwC6

ความคิดเห็น • 224

  • @SergioRibera
    @SergioRibera 4 ปีที่แล้ว +64

    Soy desarrollador de videojuegos Indie y a lo largo del tiempo me di cuenta que era mucho mejor usar Singletone para manejar los datos del usuario, ademas de las conecciones a bases de datos y carga de niveles, gracias por tu videos estuvo muy bueno

  • @PositronQ
    @PositronQ 4 ปีที่แล้ว +48

    Haz un directo hablando en general de algunos de los patrones de diseño Y como se utilizarían en cada proyecto

  • @ronaldtorres4784
    @ronaldtorres4784 4 ปีที่แล้ว +86

    Tuve que verlo dos veces porque la primera vez me mantuve ocupado viendo como aumentaba el contador de instacia...

  • @eliazarlopez4183
    @eliazarlopez4183 4 ปีที่แล้ว +42

    He utilizado este patrón para realizar un gamemanager, para gestionar los niveles de un videojuego. al momento de cambiar de nivel siempre obtenía el mismo gamemanager.
    Muy buen video, estoy al pendiente de está súper serie, saludos desde México

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว +7

      Gracias por tu comentario y el caso de uso de Singleton 😃

    • @ricardoapuy2813
      @ricardoapuy2813 4 ปีที่แล้ว +3

      Es exactamente el uso que le voy a dar XD

    • @albertoleon308
      @albertoleon308 4 ปีที่แล้ว

      En los manager es muy útil, yo lo use en una clase sesionmanager.

    • @Marco-bd5eh
      @Marco-bd5eh 3 ปีที่แล้ว

      Por ejemplo... Me imagino que el Gamemanager tenia ciertas características sobre los niveles, entonces aplicaste el singleton para aplicar a estas funciones pero desde cualquier nivel. ¿Así funciona?

  • @ElYorWTF
    @ElYorWTF 4 ปีที่แล้ว +2

    Me gusta como explica todo, no me canso de ver estas cosas tan básicas pero es que es hermoso

    • @neecosanudo
      @neecosanudo 4 ปีที่แล้ว +1

      Esa barba pone cachondo a media comunidad

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว +6

      Dios mío, no sabía que me mirábais con esos ojos 😳

    • @ElYorWTF
      @ElYorWTF 4 ปีที่แล้ว

      Hey aguantaaaaaa..... Digo que es hermoso el mundo de la programación calma calmaaaaa

    • @neecosanudo
      @neecosanudo 4 ปีที่แล้ว

      @@BettaTech La cuarentena los pone mimosos

  • @aNtULiPs
    @aNtULiPs 3 ปีที่แล้ว +6

    Challenge 2021: explicar Singleton diciendo la palabra "instancia" menos de 28 veces jaja. Todavía no sé lo suficiente como para sumarme al debate, pero estoy disfrutando mucho esta serie de Patrones de Diseño. Los ejemplos con videojuegos hacen que valga aún más y en el tiempo, cada hora que les dediqué jugando. ¡Gracias por todo!

  • @albertjjimenezp
    @albertjjimenezp 3 ปีที่แล้ว +2

    En lo personal uso muchisimo el patron singleton para la agrupacion de funciones generales. Combinado por ejemplo con patron BLOC en Flutter me permite generar funciones que trascienden a lo largo del arbol de la aplicacion simplificando muchos procesos ya que aunque los widgets se crean y se destruyen a todo momento esta unica instancia administra de forma centralizada un conjunto de habilidades que bien aprovechado puede ser beneficioso para la aplicacion. Ahora, mezclandolo con clases abstractas y mucho polimorfismo reduce "la mucha complicacion" de crer, administrar y depurar el ciclo de vida constantemente. Mas que un simple patron yo diria que es un complemento para otros patrones de diseño que permite administrar variables gobales evitando colisiones entre las mismas (O promoviendolas si eres un cabezota poco disciplinado). Gracias por tus videos.

  • @sergiocastro5060
    @sergiocastro5060 3 ปีที่แล้ว +1

    Muchas gracias, es complejo para mi entenderlo, pero ya me quedo mas claro !

  • @Verax__
    @Verax__ 3 ปีที่แล้ว +1

    Muy bueno, se entiende muy bien. A este tipo de videos siempre siento que le falta algo como un ejemplo aplicado para que los que recien nos estamos empapando en estas tematicas podamos terminar de cerrar la idea.

  •  4 ปีที่แล้ว +1

    Esta muy bien el vídeo. Lo he utilizado para controlar el acceso a recursos compartidos.
    Al vídeo le falta para ser redondo, las variantes de singleton para accesos concurrentes, acceso por varios hilos y como controlar esos accesos.
    Lo dicho, un buen vídeo, enhorabuena

  • @JeffreyDeveloperCOL
    @JeffreyDeveloperCOL 4 ปีที่แล้ว +2

    Este patron lo estoy utilizando en mi proyecto de React-native para manejar la navegación programáticamente

  • @esteveli
    @esteveli 4 ปีที่แล้ว +2

    Yo lo he utilizado en conexiones a base de datos como MongoDB y más últimamente ,con un socket que es usado por multitud de clases pero solo tiene que establecer y usar una única conexión.

  • @juancarlossequeirapiedra2091
    @juancarlossequeirapiedra2091 4 ปีที่แล้ว +5

    Justamente este patrón lo estoy utilizando para mi proyecto, buen vídeo.

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว +1

      Gracias!

    • @samueltdev
      @samueltdev 4 ปีที่แล้ว +7

      yo solo lo use en la conexión a la base de datos, es justamente lo que dice en el vídeo, si la instancia ya existe uso la existente...

    • @vladimirreyes1661
      @vladimirreyes1661 4 ปีที่แล้ว

      @@samueltdev Eso mismo estaba pensando.

  • @maurojulianayala1665
    @maurojulianayala1665 10 หลายเดือนก่อน

    Muy claro todo! muchas gracias desde Congreso , Argentina!

  • @Sr.Sableye
    @Sr.Sableye 6 หลายเดือนก่อน +1

    Chat GPT me dio esta solución, si me funciono, pero no me sentí totalmente comodo usandola sin entender, le solicite explicación pero quede un poco confundido, ahora con tu video explicado de una mera tan sencilla me hizo entender al 100% la solución que implemente a mi proyecto

    • @BettaTech
      @BettaTech  6 หลายเดือนก่อน

      Muchisimas gracias!!! Me alegra que te haya sido de ayuda :)

  • @jameslegar7065
    @jameslegar7065 4 ปีที่แล้ว +1

    Excelente la explicación perfecto para mi vídeo juego, tuve que repetirlo como tres veces, pues es inevitable contar la cantidad de veces que decía la palabra "Instancia"

  • @enver9275
    @enver9275 2 ปีที่แล้ว

    Que buena explicación, me quedó muy claro.

  • @carlosbastos2032
    @carlosbastos2032 2 ปีที่แล้ว

    Un capo explicando!!!! Simplemente genial!!!!!

  • @pabloxD75
    @pabloxD75 4 ปีที่แล้ว +1

    Este patron lo estoy viendo en curso de Xamarin que estoy tomando, me parece bastante interesante. ✌

  • @tiamirta2495
    @tiamirta2495 3 ปีที่แล้ว

    Gracias por el video, esta muy bueno el tema patrones. Quería aclarar a los que no se den cuenta que en el ejemplo que muestra, mas precisamente en el IF, siempre esta retornando una nueva instancia. Para resolver esto el return tiene que ir adentro del IF y fuera del IF otro return null.

    • @harryhaller4094
      @harryhaller4094 3 ปีที่แล้ว

      No amigo, el código es correcto. El método getInstance nunca debe devolver un null, debe devolver el atributo instance de la clase Singleton, atributo que a su vez también es de la clase Singleton.
      La primera vez que se invoca a getInstance, el if se evalúa a true, puesto que el atributo instance es null. Entonces entra en el if, instancia un objeto Singleton y lo asigna a su atributo instance. Finalmente devuelve el objeto instanciado.
      Las sucesivas veces que se vuelve invocar a getInstance, el if se evalúa a false, puesto que en la primera invocación ya se instanció el objeto Singleton y se asignó al atributo instance, que por lo tanto ya no es null. Así que ya no entra en el if, y no se vuelve a instanciar nada.
      La ejecución sigue y en estas sucesivas ocasiones se devuelve el objeto Singleton, como la primera vez, pero en estas ocasiones ya no fué necesario instanciarlo de nuevo, puesto que ya estaba guardado en el atributo.
      Espero haberte aclarado el tema. Saludos.

    • @tiamirta2495
      @tiamirta2495 3 ปีที่แล้ว

      @@harryhaller4094 claro, creo que ahora entendi. De todas formas copie el codigo del video tal cual y no funciona. Por eso mi comentario.

  • @antoniodejesusgonzalezglez6053
    @antoniodejesusgonzalezglez6053 10 หลายเดือนก่อน

    una chulada de explicación!! felicidades

    • @BettaTech
      @BettaTech  9 หลายเดือนก่อน

      Gracias! Saludos!

  • @rafaelestrada3525
    @rafaelestrada3525 4 ปีที่แล้ว +1

    Yo lo estoy utilizando en otro patrón conocido como Unit of Work para instanciar a clases con otros patrones conocidos como Repositorios con los metodos CRUD

  • @TecnoRepair
    @TecnoRepair 4 ปีที่แล้ว +11

    Un buen ejemplo del patrón Singleton son los calendarios, ya que, al instanciarlo se llevan a cabo cálculos de de días, semanas, meses, días feriados, etc... Usando este patrón nos aseguramos de instanciarlo una sola vez y así poder usarlo en varias ocasiones sin consumir mas recursos de los necesarios.

  • @NicoILeone
    @NicoILeone 4 ปีที่แล้ว +1

    Muy bien explicado! Muchas gracias! Felicitaciones.

  • @CRFigueroa
    @CRFigueroa 4 ปีที่แล้ว +1

    Me simplificaste el dilema de los patrones, gracias!! Suscrito y 👍a los vídeos, cuando hay más?

  • @lucianotomasvilla7274
    @lucianotomasvilla7274 4 ปีที่แล้ว +2

    Genio Martin, gracias por el contenido de calidad

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว +1

      Gracias a vosotros por ver mis vídeos! :D

  • @soj3da
    @soj3da 4 ปีที่แล้ว +2

    Muchas gracias por el video, y muy comico el contador de instancia jajajajaja

  • @Tommi8801
    @Tommi8801 3 ปีที่แล้ว

    Capo me resolviste algunas dudas..

  • @agustinmariani4701
    @agustinmariani4701 2 ปีที่แล้ว

    Excelente explicación! Muchas gracias ⭐️

  • @KeenkiDash
    @KeenkiDash 4 ปีที่แล้ว +8

    El singleton pattern es como una hacha. Es igual de útil como arma que como herramienta... Sólo está en las manos del arquitecto hacer un buen uso de éste.

  • @vladimirrc2377
    @vladimirrc2377 4 ปีที่แล้ว +3

    Precisamente tuve un caso para un mapper global con la relación llave_typo de dentro de un factory, cuando corría los test, se comportaba raro porque las pruebas unitarias corrían en paralelo y la inicializacion de la instancia y su mock se tranlapaban pues todos veían la misma instancia y por tanto se afectaban entre ellas y fallaba uno u otro test dependiendo quien ejecutaba antes.
    Precisamente tuve que hacer una bandera para indicar cuando debía comportar de forma natural y cuando como test.

  • @guillermoestebantorresrenn3173
    @guillermoestebantorresrenn3173 4 ปีที่แล้ว

    Excelente explicación, muchas gracias!!!!!!!!!!!!

  • @Familia_Borgogno_Arce
    @Familia_Borgogno_Arce ปีที่แล้ว

    jajja, no me pude concentrar en el video, tratando contar las palabras de "instancia" jaja. lo veré de nuevo. muchas gracias por el video...

  • @bugforbug9001
    @bugforbug9001 4 ปีที่แล้ว +7

    Una pregunta. Es buena idea usar este patrón para la conexión a base de datos?
    Que problemas podría traer?

  • @tomas-jo4tz
    @tomas-jo4tz 3 ปีที่แล้ว

    Gracias pela, sos crack, videos cortos y claros

  • @jobvillagran
    @jobvillagran 3 ปีที่แล้ว +3

    Gracias por el video, crees que podrias hacer algun tipo de ejemplificacion? Se que es un video de hace rato y no estoy seguro si tienes otro de este patron.

    • @Verax__
      @Verax__ 3 ปีที่แล้ว

      Me sumo a este pedido

  • @alonsogalan5505
    @alonsogalan5505 4 ปีที่แล้ว

    ¿Podrías subir más explicaciones sobre más patrones de diseño? Lo explicas de lujo.

  • @matiasmartini2038
    @matiasmartini2038 4 ปีที่แล้ว +1

    Gran vídeo !! muy buena explicación

  • @federicomarroquin4470
    @federicomarroquin4470 4 ปีที่แล้ว +1

    Excelente video, gracias por explicarlo.

  • @malavoelpoto
    @malavoelpoto 4 ปีที่แล้ว

    Excelente explicación me ha quedado clarisimo y eso que no hiciste un ejemplo programando.

  • @juanbriano5315
    @juanbriano5315 4 ปีที่แล้ว

    Tus videos sin excelentes! Muchas gracias!

  • @dr.freemanaperture1668
    @dr.freemanaperture1668 4 ปีที่แล้ว

    Explicado 10/10, AAA, vamos perfecto!

  • @saraisabelventuraalvarado5628
    @saraisabelventuraalvarado5628 3 ปีที่แล้ว

    yo resien estoy estudiando pero me parece interesante ya que este patron sirve para poder acceder sin hacer varias instancias y asi poder tener acceso a otros lados pero interesante y muy creativo ya que es como si fuera un atajo

  • @blinkbyker
    @blinkbyker 4 ปีที่แล้ว +99

    instancia++

    • @PositronQ
      @PositronQ 4 ปีที่แล้ว +2

      Zenemij muy bueno

    • @tiamirta2495
      @tiamirta2495 3 ปีที่แล้ว

      Hola, queria comentar que al poder crear una sola instancia basta con un tipo de dato boolean iniciado en false y en el constructor setearlo en true. Ejemplo: private static boolean thereIsAnInstance = false;(java) .. Un contador no seria necesario ya que no va a existir mas de 1 instancia.

    • @compraenchina2010
      @compraenchina2010 3 ปีที่แล้ว +1

      El patrón singleton lo tengo claro, pero no tanto que es una instancia :P

    • @eR1cK92
      @eR1cK92 3 ปีที่แล้ว

      @@compraenchina2010 cuando crea un objeto de x clase se dice que lo instancias , darle vida a.la.csse.instanciando una entidad de dicha clase

  • @carlos9484
    @carlos9484 4 ปีที่แล้ว +15

    Eso de ir contando las veces que nombras "instancia" es una gran distracción.

    • @Lokario
      @Lokario 4 ปีที่แล้ว +2

      Exactamente, me centraba más en tratar de escuchar la palabra instancia que en entender el video

  • @mlm1106
    @mlm1106 2 ปีที่แล้ว +1

    Hay un poco de video en tus instancias :P jajaja Genial el video!.

  • @JorgeLuis-ts6qp
    @JorgeLuis-ts6qp 2 ปีที่แล้ว +1

    Siempre que me he visto tentado a usar Singleton he podido reescribir la clase como abstracta con métodos estáticos. Diría sin embargo que Singleton puede ser más útil que una clase abstracta si la construcción de la clase fuera lenta. En ese caso, sería beneficioso ahorrarse la llamada al constructor hasta que se lo necesite.

  • @MrMiller969
    @MrMiller969 3 ปีที่แล้ว

    Muchas gracias, un video muy bien instanciado ... perdon, quise decir muy bien explicado xD

  • @rsaoto
    @rsaoto 4 ปีที่แล้ว +1

    Excelente esta serie de videos!
    ¿Cada cuanto sale uno nuevo?
    Voy a estar atento!
    Gracias por compartir el conocimiento

  • @sprintwithcarlos
    @sprintwithcarlos 4 ปีที่แล้ว +2

    Está muy buena la explicación. Y creo que es un antipatrón.
    Un tema que me gustaría que algún día expongas sería los pros y contras de clases vs factorías. Me parece interesante para la comunidad analizar esto

  • @diogenesmonegro3773
    @diogenesmonegro3773 4 ปีที่แล้ว

    Ese es mi patron preferido.

  • @noobinthenet8483
    @noobinthenet8483 3 ปีที่แล้ว

    Muy bien explicado y detallado! Me ha gustado mucho el vídeo. Un sub mas

    • @BettaTech
      @BettaTech  3 ปีที่แล้ว

      Gracias! 😊

  • @ernestorh6110
    @ernestorh6110 4 ปีที่แล้ว

    Antes de ver el video le di LIKE. Excelentes videos

  • @kennyel13
    @kennyel13 4 ปีที่แล้ว

    Esa remera es fantastica

  • @paolobelforte720
    @paolobelforte720 ปีที่แล้ว

    Un ejemplo de uso de Singleton interesante es el del lenguaje Smalltalk con la clase True y False
    Solo hay una instancia "true" y "false"

  • @56f5dbc3
    @56f5dbc3 ปีที่แล้ว

    Excelente video. Una sugerencia, no pongas elementos que distraigan a tu público. En mi caso me desconcentra el contador instancia. Saludos

  • @revolverkimblee
    @revolverkimblee 4 ปีที่แล้ว +2

    Puedes hacer un video con Santaolla hablando de WOLFRAM?

  • @JohnnyMnemonic882
    @JohnnyMnemonic882 ปีที่แล้ว

    El uso fundamental del patrón es el uso compartido de un recurso como por ejemplo en una aplicacion web, tener 1 una única conexión a base de datos y no tantas como sesiones abiertas. El recurso (instancia) no depende de la sesión, solo la utiliza, todas las sesiones usan la misma instancia de acceso a base de datos, o de acceso a cola de mensajería. Se puede gestionar en modo pool de N instancias concretas, pero no tendría sentido que cada sesión creara una instancia a base de datos. En el ámbito Enterprise es el uso habitual e integrado en todos los frameworks de backend.

  • @jorgepalacio5091
    @jorgepalacio5091 4 ปีที่แล้ว +1

    Waooo interesante video! Gracias.

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว +1

      Gracias a ti! 🤩

  • @carlosalberti
    @carlosalberti 3 ปีที่แล้ว

    buena explicacion.

  • @ckgrafico
    @ckgrafico 4 ปีที่แล้ว +1

    Un gran vídeo y muy bien explicado “No puedes ir instanciando por ahí como si no pasara nada” 🤣

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว

      Muchas gracias!!

  • @luisangeltorresgrimaldo7772
    @luisangeltorresgrimaldo7772 2 ปีที่แล้ว

    Muy buen video, gracias

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว +1

      Gracias por comentar!!

  • @thebetoxpro
    @thebetoxpro 4 ปีที่แล้ว +2

    Justo vi esto en Platzi xd

  • @antonioitsolutions8792
    @antonioitsolutions8792 4 ปีที่แล้ว +1

    Patrón Decorator el siguiente porfa 👌🤘🙏🙏

  • @cristianf.777
    @cristianf.777 4 ปีที่แล้ว +1

    Me gustaría saber más de sobre arquitectura de software. Saludos desde México.

  • @juanantoniosotocabrera7045
    @juanantoniosotocabrera7045 4 ปีที่แล้ว +1

    Sin querer me di con este video y tu canal, lo explicas de una forma sencilla!, mi duda es recomendarias singleton para una aplicacion restful ?

    • @jorgemedina2272
      @jorgemedina2272 4 ปีที่แล้ว

      Yo lo he utilizado con node, de crear una sola instancia del servidor y la configuración.

  • @JuanmaD
    @JuanmaD 3 ปีที่แล้ว

    La recursividad de las instancias. Martin, como me puedo poner en contacto contigo?

  • @rickhunter8216
    @rickhunter8216 ปีที่แล้ว

    BUEN VIDEO KRATOS TIERNO.

  • @AlbertoDiAlEsp
    @AlbertoDiAlEsp 4 ปีที่แล้ว +1

    En un curso que hice me dijeron que el mayor uso sería usarlo para la sesión de un usuario.

  • @antonygiomarx
    @antonygiomarx 4 ปีที่แล้ว +1

    Grande Martín.

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว

      Grandes vosotros!

  • @FedericoAlemany
    @FedericoAlemany 3 ปีที่แล้ว

    Solo por curiosidad, no se podría verificar la existencia de la instancia en el constructor? (y así poder dejarlo como público).

  • @hectorkaizenf.v.7224
    @hectorkaizenf.v.7224 3 ปีที่แล้ว

    Hay patrones de diseño para la programación funcional??

  • @DjMostreck
    @DjMostreck 4 ปีที่แล้ว

    Será recomendable utilizar singleton para las listas (ej. Países, Ciudades, etc) en las vistas? Lo digo por la cuestión de performance.

  • @josemi7225
    @josemi7225 4 ปีที่แล้ว

    Gracias por el video. Eso sí, sería todavía mejor el vídeo si pusieras también el código para C++ ;)

  • @christianalvarezsanchez6659
    @christianalvarezsanchez6659 4 ปีที่แล้ว +1

    Bueno aun no lo he usado , pero creo que para las clases repositorios que implementan una interfaz, creo que estaría bien.

  • @kldas_
    @kldas_ 4 ปีที่แล้ว

    Haz uno de cadena de responsabilidad

  • @kevincalvache577
    @kevincalvache577 4 ปีที่แล้ว

    Soy nuevo en lo relacionado a la arquitectura de software. Singelton sería un patrón recomendado para implementarlo en una clase contexto de una base de datos?

  • @Ferdinandus_1979
    @Ferdinandus_1979 9 หลายเดือนก่อน

    Hola, te queria preguntar por ese fondo de pantalla tan chulo que tienes?. De qué es?

  • @putinninovacuna8976
    @putinninovacuna8976 4 ปีที่แล้ว

    BettaTech es como un patron porque como le va con las mujeres siempre sera un singleton

  • @juankparrado8062
    @juankparrado8062 2 ปีที่แล้ว +1

    tan chevere

  • @OscarMartinez-zp6fr
    @OscarMartinez-zp6fr 4 ปีที่แล้ว +2

    No lo considero un anti patrón. Pero si que creo que a veces se abusa, utilizándose en situaciones en las que no se debería implementar. Si lo vas a usar, piénsalo dos veces y mucho cuidado si tu aplicación es multithread o accedida de forma simultánea por varios clientes

  • @cesardmora86
    @cesardmora86 4 ปีที่แล้ว

    hater_mode = on
    - aunque el código es simple, no es thread-safe, así que si tienes mala suerte (y por ley de Murphy la tendrás) en algún momento existirá más de una instancia. Sin embargo, detectar un error de esos es muy difícil por no decir que imposible e irreproducible.
    - la variable instance debería ser final para evitar ese tipo de errores; el precio es que hay que sacrificar el lazy-load
    hater_mode = off
    Para mí el problema con todo tipo de patrones de diseño es que hay gente que aprende uno nuevo, y lo usa en los próximos proyectos a diestra y siniestra sin considerar pros y contras

    • @valcron-1000
      @valcron-1000 4 ปีที่แล้ว

      El problema de sincronización de threads en la creación de la instancia se puede solucionar utilizando primitivas acorde al lenguaje (por ejemplo, el synchronized de Java junto al uso de locks).
      En los ejemplos dados no puede darse este problema ya que se esta utilizando JS que es single-threaded.
      De todas maneras no recomiendo el uso de un Singleton, y mucho menos en aplicaciones con múltiples hilos.

  • @enriquejesusbacaestrada4821
    @enriquejesusbacaestrada4821 4 ปีที่แล้ว +2

    Llevo años usándolo pero para el control de recursos en el servidor, cada que se crea un objeto consume recursos, memoria, procesador y más cuando tratas con millones de registros en BD.

  • @hkfuertes
    @hkfuertes 4 ปีที่แล้ว +1

    UNA preguntilla... Usarías Singleton para tener un objeto con las configuraciones del programa?... Es decir una configuración en yaml, que cargas al inicio de la ejecución, y que te quieres olvidar de andar pasando de objeto a objeto ... Crear una clase "config" Singleton, que mapee ese yaml y que puedas recuperar, siempre igual en todo to programa? Algo así como un state management?

    • @JorgeLuis-ts6qp
      @JorgeLuis-ts6qp 2 ปีที่แล้ว

      Mi experiencia con los archivos de configuración se resume en dos acercamientos.
      Lees el archivo cada vez que quieras acceder a una configuración. Para que esto sea viable deberías ser capaz de leer la configuración sin pérdida de tiempo. Si la lectura no es muy rápida pero necesitas acceder a una configuración muchas veces seguidas, léela y guárdala como variable local.
      La otra opción (más parecida a un Singleton) es usar una clase abstracta. No sé qué lenguaje usarás. En Python puedes leer la configuración al iniciar el programa y guardarla en memoria RAM en una clase.

  • @arminrorro
    @arminrorro 4 ปีที่แล้ว

    es como usar helpers?

  • @Jocker88
    @Jocker88 4 ปีที่แล้ว +1

    Yo en tareas lo estuve utilizando para clases controladoras para escribir en XML, o alguna base de datos, ahora no se si hice mal, no sabía que había controversia sobre este patrón (ojo, que soy estudiante). Mis profesores nunca me han puesto pegas. ¿Qué opinas?
    Un saludo!
    P.D. Me he quedado con las ganas de que llegaras a 40 xD.

  • @cristiangs5127
    @cristiangs5127 ปีที่แล้ว

    Yo había usado clases staticas para manejar datos globales y moverlos de un lado a otro, ahora veo que el singleton seria lo mejor xd

  • @armandoquispeticona2410
    @armandoquispeticona2410 4 ปีที่แล้ว +3

    Hola! Me podrías recomendar libros/videos/curso para poder aprender/mejorar en algoritmia para poder resolver problemas :).
    Un saludo y gracias!

  • @joaomr4551
    @joaomr4551 4 ปีที่แล้ว

    Un ejemplo de singleton podría considerarse una conexión a una base de datos? Es decir ya no se solicitaría constantemente un ID de conexión, solo mantener el mismo, solo bastaría cerrar y abrir la conexión

    • @joano.b.6966
      @joano.b.6966 4 ปีที่แล้ว

      Si. Yo lo utilizaba en php. Abría la conexión, realizaba las operaciones necesarias y la cerraba

  • @YstmioGaona0505
    @YstmioGaona0505 3 ปีที่แล้ว

    Es una herramienta y como tal hay que usarla donde será útil

  • @jsonft5417
    @jsonft5417 4 ปีที่แล้ว +2

    Todo bien, hasta que python te da metaclases con las que puedes controlar la instanciación de las instancias de tu clase con mucho más detalle.

  • @davidleonardobernal61
    @davidleonardobernal61 4 ปีที่แล้ว

    Hola podrías crear un video para el patrón observer?

  • @saitoinosaka6445
    @saitoinosaka6445 4 ปีที่แล้ว

    ¿Dónde encuentro esa camiseta? Está increíble.

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว

      Es parte del merchandising del canal! Deberias verla debajo de los videos 😄

  • @Cloudd014
    @Cloudd014 4 ปีที่แล้ว

    Pues en Unity se suele usar para la instancia del game manager, así al cambiar de escena no se vuelve a crear uno, no sé si eso es óptimo

  • @MrElmarqueli
    @MrElmarqueli 2 ปีที่แล้ว

    Hola que tal, creo que como toda herramienta tiene su uso y esta es de las cuales apuntaría a algo un poco especifica, me parece que se lo ve como antipatron por el hecho de que es eso una herramienta una forma que se debe usar en cosas especificas y claro esta siempre va a depender de la app que estemos creando. En lo personal no descato su uso su aplicacion es mejor decir lo conosco se que hace, que no y sus consecuencias entonces ver si me sirve aplicarlo o no, cero ese es el razonamiento que tenemos que tener. Bueno un saludo a la comunidad y decir que el video esta muy bueno.

  • @cletrop
    @cletrop 4 ปีที่แล้ว +3

    Tuve que verlo dos veces una para contar la veces que decias instancia y otra para entender el video 😅😅

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว +1

      Me he dejado alguna INSTANCIA? 🤭

  • @matiasgodoy7252
    @matiasgodoy7252 2 ปีที่แล้ว

    Una critica constructiva, es que en un video académico (no de comedia) la broma de contar la cantidad de veces que dijiste instancia si bien es graciosa a la vez es distractiva ya que estás intentando aprender un concepto y existe un chiste en segundo plano. Con la aclaración del principio me parece suficiente, de ahí en adelante excelente video!

    • @BettaTech
      @BettaTech  2 ปีที่แล้ว

      Gracias por el feedback! Creo que en los vídeos siguientes lo tomé en cuenta y estarán mejor :) Gracias!!!

  • @seba23571
    @seba23571 4 ปีที่แล้ว

    creo que se olvido mencionar que en la estructura de datos en java esta la memoria head y la memoria stack donde hace referencia a las memorias de las instancias de los objetos singlenton tambien sirve para no saturar la memoria stack de la ram... en jvm. saludos...

    • @juanguillen9946
      @juanguillen9946 4 ปีที่แล้ว +1

      no, por que el video no esta enfocado a java

    • @subernasterd2727
      @subernasterd2727 2 ปีที่แล้ว

      Lo está haciendo en typescript

  • @carlosortigoza5222
    @carlosortigoza5222 4 ปีที่แล้ว +2

    Segundo comentario, tus vídeos son excelentes colega

    • @BettaTech
      @BettaTech  4 ปีที่แล้ว

      Gracias! 😊 Me animáis muchísimo!!!

  • @Progresiive
    @Progresiive 4 ปีที่แล้ว

    Hola soy nuevo en esto y hay una cosa que no entiendo que es lo que hace exactamente "instance : singletone" es como un = en este caso ?
    Porque cuando busco usos del op ternario seria como para un if else si alguien puede responder se agradece