Lazy ve Computed: Temel Farklar
# Lazy Özelliği: Temiz ve Verimli Bellek Kullanımı
```swift
class DatabaseManager {
lazy var connection: DatabaseConnection = {
print("Veritabanı bağlantısı oluşturuluyor...")
return DatabaseConnection()
}()
func fetchData() {
print("Veri alınıyor...")
}
}
```
Bu örnekte, connection özelliği sadece veritabanı bağlantısına ihtiyaç duyduğunda oluşturulacaktır. Yani, her seferinde başlatılmaz, böylece bellek tüketimi optimize edilir.
# Computed Özelliği: Anında Hesaplama
```swift
class User {
var firstName: String
var lastName: String
var fullName: String {
return "\(firstName) \(lastName)"
}
init(firstName: String, lastName: String) {
self.firstName = firstName
self.lastName = lastName
}
}
```
Burada fullName computed özelliği, her erişimde güncellenen bir değer döndürür. Yani, her zaman doğru ve güncel bir bilgi sağlanır, ancak hesaplama her seferinde yapılır.
Lazy ve Computed Performans Farkları
Özellikle büyük verilerle çalışırken veya hesaplama yoğun bir işlem yapıyorsanız, lazy özelliği tercih etmek daha mantıklı olacaktır. Ancak, her zaman hesaplanan verilere ihtiyacınız varsa, computed özelliği doğru bir tercih olabilir.
Performans Farklarını Anlamak
```swift
class DataProcessor {
lazy var largeDataSet: [String] = {
print("Veri seti yükleniyor...")
return ["A", "B", "C", "D", "E"]
}()
var dataSize: Int {
return largeDataSet.count
}
}
let processor = DataProcessor()
print("Veri boyutu: \(processor.dataSize)") // Veri seti yüklenir
```
Burada, largeDataSet yalnızca dataSize özelliği erişildiğinde yüklenir. Eğer largeDataSet her seferinde hemen yüklenmiş olsaydı, uygulamanın başlangıç süresi çok daha uzun olabilirdi. Lazy özelliği kullanmak, performansı büyük ölçüde iyileştirir.
Hangi Durumda Hangi Özellik Kullanılmalı?
- Büyük veri setleriyle çalışıyorsanız,
- Nesnenin oluşturulması pahalı bir işlemse,
- Sadece belirli durumlarda ihtiyaç duyuluyorsa.
- Computed özelliğini kullanın, eğer:
- Her zaman güncel ve doğru bir değer döndürmeniz gerekiyorsa,
- Hesaplama sıklıkla yapılacaksa,
- Bellek tüketiminin önemli olmadığı durumlarda.
Sonuç
Unutmayın, doğru özellikleri doğru durumlarda kullanmak, her zaman daha hızlı ve verimli bir uygulama geliştirme süreci sağlayacaktır!