Singleton est un anti-modèle ?

Apr 02 2023
Ici, je vais vous raconter brièvement l'histoire. Qu'est-ce qu'un singleton ? Le modèle singleton est un moyen d'avoir une instance d'une classe spécifique dans toute l'application et de lui fournir un point d'accès unique.

Ici, je vais vous raconter brièvement l'histoire.

Qu'est-ce qu'un singleton ?

Le modèle singleton est un moyen d'avoir une instance d'une classe spécifique dans toute l'application et de lui fournir un point d'accès unique.

Comment écrire singleton ?

exemple:

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

nous pouvons utiliser ce singleton de n'importe où dans le programme car nous devons imprimer des journaux partout dans l'application en utilisant le même format.

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

URLSession.shared

UserDefaults.standard

est-ce que Singleton est testable ?

En fait, Non si vous n'utilisez pas faites ce changement :

Global Mutable Shared State : vous utiliserez donc static var instance , public init.

Bon mais ses dangers' parce que vous pouvez le changer à partir de plus d'un thread.

Où puis-je utiliser Singleton ?

avec la classe qui enregistre les messages sur la console comme nous le voyons dans l'exemple précédent.

Comment ajouter Logic à Singleton ?

Rallonges

Sous-classes

Comment gérer singleton à partir d'un framework tiers?

en utilisant l'inversion de dépendance en utilisant le protocole / fermeture (interface).

Les singletons peuvent convenir. Mais si vous ne faites pas attention, ils ne sont pas seulement un anti-modèle. ILS PEUVENT ETRE DANGEREUX !