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 鈥渃onnect鈥 mas de una vez en diferentes modulos.