se me hace extranio entender en que forma sera util (se nota que falta mucha experiecia).
pero se ve interesante!.
Introducción
¿Ya tomaste el Curso de TypeScript: Tipos Avanzados y Funciones?
Fundamentos de POO
Class
Métodos
Acceso público
Acceso privado
Constructor
Getters
Setters
POO Avanzada
Herencia
Acceso protegido
Static
Interfaces
Clases abstractas
Singleton: constructor privado
Asincronismo y consumo de APIs
Promesas
Tipando respuestas HTTP
Proyecto: migración de funciones a clases
Consumiendo ProductMemoryService
ProductHttpService
Consumiendo ProductHttpService
Genéricos
Generics
Generics en clases
Generics en métodos
Decoradores
Próximos pasos
¿Quieres más cursos de TypeScript?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 10
Preguntas 4
se me hace extranio entender en que forma sera util (se nota que falta mucha experiecia).
pero se ve interesante!.
¡Qué interesante! 😮
Singleton nos previene crear múltiples instancias de una clase.
Esto es muy usado en Arquitectura de Software, pues nos ayuda a ahorrar uso de memoria.
export class MyService {
static instance: MyService | null = null;
private constructor(
private name: string
) {}
get Name() {
return this.name;
}
static create(name: string) {
if (MyService.instance === null) {
console.log('Creating new instance');
MyService.instance = new MyService(name);
}
return MyService.instance;
}
}
const myService1 = MyService.create('MyService1');
console.log(myService1.Name)
const myService2 = MyService.create('MyService2');
console.log(myService2.Name)
const myService3 = MyService.create('MyService3');
console.log(myService3.Name)
console.log(myService1 === myService2); //* true
console.log(myService1 === myService3); //* true
la propiedad instace no debería se private para que no se pueda acceder a ella directamente desde fuera?
no es posible hacer este patron sin typescript?
Esta clase estuvo muy buena, el patrón singleton nos sirve para crear una única instancia de algún objeto en específico… por ejemplo podemos gestionar conexiones a bases de datos.
Esto es super útil, muy circunstancial pero super útil.
Si quieres aprender un poco más sobre patrones de diseño te dejo este recurso que me pareció genial:
Propósito
Singleton es un patrón de diseño creacional que nos permite asegurarnos de que una clase tenga una única instancia, a la vez que proporciona un punto de acceso global a dicha instancia.
https://refactoring.guru/es/design-patterns/singleton
Veo la utilidad cuando se trabaja con bases de datos, por ejem tienes varios modulos (archivos .ts) en los que necesitas interactuar con una base de datos, si te conectas a la misma base de datos desde cada modulo, va a haber un delay y puede producir bugs, con singleton, si te contectas a la base de datos una vez, siempre vas a usar la misma conexión no importa si llamas la funcion “connect” mas de una vez en diferentes modulos.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.