Singleton bir anti-kalıp mı?

Apr 02 2023
Burada size hikayeyi kısaca anlatacağım. Singleton nedir? singleton kalıbı, tüm uygulamada belirli bir sınıftan bir örneğe sahip olmanın ve buna tek erişim noktası sağlamanın bir yoludur.

Burada size hikayeyi kısaca anlatacağım.

Singleton nedir?

singleton kalıbı, tüm uygulamada belirli bir sınıftan bir örneğe sahip olmanın ve buna tek erişim noktası sağlamanın bir yoludur.

Singleton nasıl yazılır ?

örnek:

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

Bu singleton'u programın herhangi bir yerinden kullanabiliriz çünkü günlükleri uygulamanın içindeki her yerde aynı formatı kullanarak yazdırmamız gerekir.

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

URLSession.shared

UserDefaults.standart

Singleton test edilebilir mi?

Aslında, Hayır, kullanmazsanız bu değişikliği yapın:

Global Mutable Shared State : yani statik var örneğini, public init'i kullanacaksınız .

İyi ama tehlikeleri' çünkü birden fazla iş parçacığından değiştirebilirsiniz.

Singleton'u nerede kullanabilirim?

önceki örnekte gördüğümüz gibi mesajları konsola kaydeden sınıf ile.

Singleton'a Mantık nasıl eklenir?

Uzantılar

Alt Sınıflar

Üçüncü taraf çerçevesinden singleton nasıl işlenir?

protokol / kapatma (arayüz) kullanarak bağımlılık tersini kullanma.

Singletons tamam olabilir. Ancak dikkatli olmazsanız, bunlar sadece bir anti-desen değildir. TEHLİKELİ OLABİLİRLER!