Singleton adalah anti-pola?

Apr 02 2023
disini saya akan menceritakan kisahnya secara singkat. Apa itu Lajang? pola tunggal adalah cara Anda akan memiliki satu instance dari kelas tertentu di seluruh aplikasi dan memberikan satu titik akses ke sana.

disini saya akan menceritakan kisahnya secara singkat.

Apa itu Lajang?

pola tunggal adalah cara Anda akan memiliki satu instance dari kelas tertentu di seluruh aplikasi dan memberikan satu titik akses ke sana.

Bagaimana cara menulis tunggal?

contoh:

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

kita dapat menggunakan singleton ini dari mana saja dalam program karena kita perlu mencetak log di mana saja di dalam aplikasi menggunakan format yang sama.

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

URLSession.dibagikan

UserDefaults.standard

apakah Singleton dapat diuji?

Sebenarnya, No if you don't use do this change :

Global Mutable Shared State : jadi Anda akan menggunakan static var instance , public init.

Bagus tapi berbahaya karena Anda dapat mengubahnya dari lebih dari satu utas.

Di mana saya dapat menggunakan Singleton?

dengan kelas yang mencatat pesan ke konsol seperti yang kita lihat pada contoh sebelumnya.

Bagaimana cara menambahkan Logika ke Singleton?

Ekstensi

SubClass

Bagaimana cara menangani singleton dari framework pihak ketiga?

menggunakan inversi ketergantungan menggunakan protokol / penutupan (antarmuka).

Lajang bisa baik-baik saja. Tetapi jika Anda tidak berhati-hati, mereka bukan hanya anti-pola. MEREKA DAPAT BERBAHAYA!