No tienes acceso a esta clase

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

Singleton: constructor privado

14/25
Recursos

Aportes 10

Preguntas 4

Ordenar por:

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

o inicia sesión.

se me hace extranio entender en que forma sera util (se nota que falta mucha experiecia).
pero se ve interesante!.

¡Qué interesante! 😮

Singleton: constructor privado

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:

https://refactoring.guru/es/design-patterns

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.