¿Singleton es un antipatrón?

Apr 02 2023
Aquí les contaré la historia brevemente. ¿Qué es un Singleton? El patrón singleton es una forma en la que tendrá una instancia de una clase específica en toda la aplicación y le proporcionará un único punto de acceso.

Aquí les contaré la historia brevemente.

¿Qué es un Singleton?

El patrón singleton es una forma en la que tendrá una instancia de una clase específica en toda la aplicación y le proporcionará un único punto de acceso.

¿Cómo se escribe singleton?

ejemplo:

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

podemos usar este singleton desde cualquier parte del programa porque necesitamos imprimir registros en todas partes dentro de la aplicación usando el mismo formato.

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

URLSession.shared

UserDefaults.estándar

¿Singleton es comprobable?

En realidad, no, si no usas haz este cambio:

Estado compartido mutable global: por lo que usará una instancia de var estática, inicialización pública.

Bueno pero tiene sus peligros porque puedes cambiarlo desde más de un hilo.

¿Dónde puedo usar Singleton?

con clase que registra mensajes a la consola como vemos en el ejemplo anterior.

¿Cómo agregar lógica a Singleton?

Extensiones

Subclases

¿Cómo manejar singleton desde un marco de terceros?

usando la inversión de dependencia usando protocolo/cierre (interfaz).

Singletons puede estar bien. Pero si no tienes cuidado, no son solo un antipatrón. ¡PUEDEN SER PELIGROSOS!