~/questoes/programacao
O Singleton Pattern garante que apenas uma instância de uma classe exista durante toda a execução da aplicação. No contexto do Repository, isso significa que a conexão com o banco de dados é compartilhada, economizando recursos e evitando duplicações desnecessárias.
O Singleton Pattern mantém uma única instância compartilhada do Repository, o que otimiza o uso de recursos e evita múltiplas conexões redundantes com o banco de dados. Isso é especialmente importante em Node.js, onde cada conexão consome memória e conexões TCP.
O Singleton Pattern de fato garante uma única instância do Repository que é reutilizada em toda a aplicação. Quando o arquivo SelecaoRepository.js é importado em diferentes controllers, todos recebem a mesma instância, não novas cópias.
O Factory Pattern cria novas instâncias conforme necessário, o oposto do que queremos em um Repository. Se usássemos Factory, teríamos múltiplas conexões com o banco, desperdiçando recursos.
O Strategy Pattern permite trocar implementações em tempo de execução, mas não garante instância única. É útil para flexibilidade de comportamento, não para controlar quantas cópias da classe existem.
O Observer Pattern notifica múltiplos objetos sobre mudanças, criando uma relação de comunicação entre classes. Não está relacionado a garantir uma única instância de um objeto.