No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
14 Hrs
56 Min
16 Seg

Singleton 101

3/27
Recursos

Aportes 6

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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 “constructor” y que tras bambalina llame al constructor privado, para crear un objeto que estará guardado en una variable estática que funcionara como caché.
# 🏢 Patrones creacionales ### Ideas/conceptos claves `Singleton` Un patrón de diseño que garantiza que una clase tenga una única instancia y proporciona un punto de acceso global a esa instancia. `**Factory**` Un patrón de diseño que proporciona una interfaz para crear objetos en una superclase, pero permite a las subclases alterar el tipo de objetos que se crearán. `Abstract Factory` Un patrón de diseño que proporciona una interfaz para crear familias de objetos relacionados o dependientes sin especificar sus clases concretas. `Builder` Un patrón de diseño que separa la construcción de un objeto complejo de su representación, permitiendo la creación de diferentes representaciones del mismo objeto. `Prototype` Un patrón de diseño que permite la creación de nuevos objetos duplicando un objeto existente, llamado prototipo. ### Apuntes * Abstraen el proceso de creación / instanciación de objetos 1. Singleton 2. Factory 3. Abstrct factory 4. Builder 5. Prototype * Las técnicas que proponen los patrones de diseño creacionales, nos ayudan a llevar el proceso de nuevos objetos de una forma más Reusable y Extensible ```md 📌 **RESUMEN:** Los patrones creacionales simplifican y mejoran el proceso de creación de objetos, promoviendo la reutilización y la extensibilidad del código ```
![](https://static.platzi.com/media/user_upload/Patr%C3%B3n%20de%20Dise%C3%B1o%20Singleton%20en%20JavaScript-caa781f6-8d61-449e-9c9d-df5ed2092924.jpg)

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

***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")

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