Sobes.tech
Junior — Middle

Explique o conceito do padrão Singleton e suas principais características.

sobes.tech IA

Resposta da IA

O padrão Singleton garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global a essa instância. Isso é útil quando é necessário gerenciar centralizadamente o estado ou recursos, por exemplo, ao trabalhar com configurações de aplicação ou um gestor de base de dados.

Principais características do Singleton:

  • Uma única instância: a classe controla a criação do objeto e não permite criar mais de um.
  • Acesso global: a instância está disponível de qualquer parte do programa através de um método ou propriedade estática.
  • Inicialização preguiçosa: o objeto é criado na primeira chamada (lazy initialization).

Exemplo de implementação do Singleton em Dart (Flutter):

class Singleton {
  Singleton._privateConstructor();

  static final Singleton _instance = Singleton._privateConstructor();

  factory Singleton() {
    return _instance;
  }

  void someMethod() {
    print('Chamada ao método Singleton');
  }
}

void main() {
  var s1 = Singleton();
  var s2 = Singleton();
  print(identical(s1, s2)); // true
}

Aqui, o construtor é privado e o acesso à instância é feito através de um construtor de fábrica, que sempre retorna o mesmo objeto.