Junior
Singleton nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Singleton, tasarım kalıbı olarak, bir sınıfın yalnızca bir örneği olmasını garanti eder ve ona küresel erişim noktası sağlar.
Avantajlar:
- Tek örneğin kontrolü.
- Küresel erişim noktası.
- Tembel başlatma (uygulanmışsa).
Dezavantajlar:
- Tek sorumluluk ilkesinin ihlali.
- Testleri zorlaştırır.
- Senkronizasyon olmadan çok iş parçacıklı ortamda sorunlara yol açabilir.
Swift'te tipik uygulama:
class Singleton {
// Tek örneği saklamak için statik sabit
static let shared = Singleton()
// Diğer örneklerin oluşturulmasını engellemek için özel yapıcı
private init() {
// Ek ayarlamalar, gerekirse
print("Singleton örneği oluşturuldu")
}
// Singleton örneği metod örneği
func doSomething() {
print("Singleton bir şeyler yapıyor")
}
}
Kullanım:
// Statik özellik aracılığıyla tek örneğe erişim
let instance = Singleton.shared
instance.doSomething()
// Başka bir örnek oluşturmaya çalışmak derleme hatasına yol açar
// let anotherInstance = Singleton() // Hata!