Singleton é um antipadrão?
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!





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)