Singleton é um antipadrão?

Apr 02 2023
aqui vou contar a história brevemente. O que é um Singleton? O padrão singleton é uma maneira de você ter uma instância de uma classe específica em todo o aplicativo e fornecer um único ponto de acesso a ela.

aqui vou contar a história brevemente.

O que é um Singleton?

O padrão singleton é uma maneira de você ter uma instância de uma classe específica em todo o aplicativo e fornecer um único ponto de acesso a ela.

Como escrever singleton?

exemplo:

final class Logs {
 static let shared = Logs()
 private init() {}
 func printLog(_ log:String) {
  print("here we do: ===\(log)===")
  }
}

podemos usar este singleton de qualquer lugar do programa porque precisamos imprimir logs em todos os lugares dentro do aplicativo usando o mesmo formato.

Logs.shared.printLog("inside ViewModel and loading some feeds")

URLSession.shared

UserDefaults.standard

Singleton é testável?

Na verdade, não, se você não usar, faça esta alteração:

Global Mutable Shared State: então você usará static var instance , public init.

Bom, mas seus perigos porque você pode alterá-lo de mais de um segmento.

Onde posso usar o Singleton?

com classe que registra mensagens no console como vimos no exemplo anterior.

Como adicionar lógica ao Singleton?

Extensões

Subclasses

Como lidar com o singleton da estrutura de terceiros?

usando a inversão de dependência usando protocolo / fechamento (interface).

Solteiros podem ficar bem. Mas se você não tomar cuidado, eles não são apenas um antipadrão. ELES PODEM SER PERIGOSOS!