Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

228
Visualizações
¿Cuál es la diferencia entre estos dos enfoques singleton en JS?

La forma de resolver el patrón singleton en JS (en realidad, TS) se ve así (el mejor enfoque si me preguntas):

 export default class Singleton { private static _instance: Selection constructor() { if (Selection._instance) { return Singleton._instance } else { Singleton._instance = this } } }

Y entonces:

 import Singleton from './Singleton.ts' const singleton_1 = new Singleton() const singleton_2 = new Singleton() singleton_1 === singleton_2 // true

Pero en este escenario tengo que crear nuevas variables cada vez que necesito esa clase.

Puedo lograr exactamente lo mismo de la manera más fácil:

 class Singleton { constructor() { // some logic } } export default new Singleton()
 import Singleton from './Singleton.ts' const wut = Singleton.field Singleton.method('do something')

¿Me estoy equivocando en algo o el primer enfoque es un poco excesivo y complicado y el segundo simplemente hace lo mismo de una manera más obvia?

Entiendo que si tengo campos estáticos en mi clase, no podría usarlos de esa manera, pero los casos en los que realmente necesita campos estáticos son raros.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Es esencial en un escenario donde solo se necesita crear una instancia, por ejemplo, una conexión de base de datos. Solo es posible crear una instancia cuando la conexión está cerrada o te aseguras de cerrar la instancia abierta antes de abrir una nueva. Este patrón también se conoce como patrón estricto, un inconveniente asociado con este patrón es su abrumadora experiencia en las pruebas debido a sus objetos de dependencias ocultas que no se seleccionan fácilmente para las pruebas.

 let databaseInstance = null; // tracks the number of instances created at a certain time let count = 0; function init() { console.log(`Opening database #${count + 1}`); //now perform operation } function createIntance() { if(databaseInstance == null) { databaseInstance = init(); } return databaseInstance; } function closeIntance() { console.log('closing database'); databaseInstance = null; } return { open: createIntance, close: closeIntance } } const database = DatabseConnection(); database.open(); //Open database #1 database.open(); //Open database #1 database.open(); //Open database #1 database.close(); //close database

fuente: https://codesource.io/javascript-design-patterns/

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda