No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Singleton 101

3/27
Recursos

Aportes 4

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Hola comunidad, dejo mis anotaciones de la clase! 馃挌

驴De que se trata singleton?

En un patron que nos permite asegurarnos que no se pueda crear mas de una instancia de un objeto.

Con esto aseguramos un 煤nico punto global de acceso a la instancia.

Este tambi茅n tiene elementos por los que podr铆a ser conocido como un anti-patr贸n.

驴A que problem谩ticas podr铆a dar soluci贸n?

  • Cuando queremos asegurar el acceso a un recurso compartido en diferentes partes de la app.

    Suena similar a lo que hace una Biblioteca de Manejo de Estados (Como Vuex, Redux, o NgRx)

  • Cuando queremos que la modificaci贸n al recurso compartido se lleve a cabo en un solo punto de acceso.

    Un ejemplo para ello seria crear un m茅todo en la clase, donde se pueda modificar el estado interno de ese 煤nico objeto.

Soluci贸n

  • El patron sugiere hacer privado el constructor de la clase para evitar hacer uso del operador new().
  • Crear un m茅todo est谩tico que actu茅 como 鈥渃onstructor鈥 y que tras bambalina llame al constructor privado, para crear un objeto que estar谩 guardado en una variable est谩tica que funcionara como cach茅.

Cosa curiosa, en los cursos de backend por all谩 en los a帽os del cristo; uno puede hacer singleton simplemente haciendo un return en los lenguaje que usan refs en su Compilador/Interprete

***SINGLETON*** Patron que asegura una unica instancia a un objeto garantizando un punto global de acceso. - Optimizacion. Recursos compartidos. > Asegura que la modificaciones de software se haga desde un unico punto de acceso - Constructor (C) operador new(). Solucion crear un metodo estatico que actua como C este llamara a C privado que creara y guardara un objeto en una variable estatica ("cache")

Hasta ahora no he salido de JavaScript/TypeScript鈥 ser铆a interesante probar estos patrones en lenguajes basados en clases y no en prototipos.