Singleton est un anti-modèle ?
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 !
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































